我继承了一个系统,该系统有很多带有“喜欢”的查询而没有“%”,我想知道它是否只是作为一个相同的操作员在幕后工作。
“query.filter(User.name =='John')”是否与“query.filter(User.name.like('John'))”相同?
结果/性能是否相同?
答案 0 :(得分:1)
这是一个纯粹的DB问题,它基本上归结为速度更快:
SELECT * FROM User WHERE Name = 'John';
VS
SELECT * FROM User WHERE Name LIKE 'John';
两者都会产生相同的结果,但LIKE
会慢一点,因为它会进行模式匹配(vs ==
这是完全匹配)。如果你正在使用一个小桌子,你可能不会注意到很多不同,但是对于大桌子(例如recs的mils),它会非常明显。