简短介绍:
我有一个表t1( id(mediumint), string(varchar(45) )都属于主键.
我需要在这个表中找到5个字符串,比方说.这个表就像5M +行.
什么会更快?
一个查询使用IN():
SELECT id, string FROM t1 WHERE string IN (value1,value2,...,value5)
Run Code Online (Sandbox Code Playgroud)
要么
五个查询,每个值一个:
SELECT id, string FROM t1 WHERE string = value1
SELECT id, string FROM t1 WHERE string = value2
'
'
SELECT id, string FROM t1 WHERE string = value5
Run Code Online (Sandbox Code Playgroud)应用程序服务器和数据库服务器将位于同一网络(100Mbit或1Gbit,尚未确定),而不是在同一台计算机上.
大多数情况下,使用单个查询可能比使用多个查询更快,因为它避免了解析,发送查询和接收多个单独响应的开销,并且它允许更好的优化.如有疑问,请查看.
还要记住查询的长度.大多数数据库服务器都限制了查询字符串的长度.因此,如果您有很长的值列表,则应该批量发送它们.
| 归档时间: |
|
| 查看次数: |
2134 次 |
| 最近记录: |