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