如果知道取的值是唯一的,但不一定存在
是使用get检查异常好,还是使用filter看是否存在好?
从程序运行效率的角度讲
如果知道取的值是唯一的,但不一定存在
是使用get检查异常好,还是使用filter看是否存在好?
从程序运行效率的角度讲
|
1
貌似不是用get 和filter比,而是get和first比更适合
get相当于加了一个limit(2)在里面,如果有重复或者不存在会抛异常,first()相当于limit(1),比get效率要高一些 |
|
2
使用first()更好,但是要注意first()不会抛出异常,找不到只会返回None。
顺便一说咱们公司的代码用的是Django1.5.6,first在1.6才有... 所以你还是用get吧... |
|
3
|
|
ericlsJul 17, 2015
5
使用 exists() 检查是否存在!
|
|
6
看下django issue出来的sql就知道了
|
|
latyasJul 17, 2015
8
都是执行一条SQL,瓶颈永远在数据库IO上
|
|
virusdefenderJul 17, 2015
9
存在不存在 用 exists()
|