1、查询条件的先后顺序
有多个查询条件时,要把效率高能更精确筛选记录的条件放在后边。因为MySQL解析sql语句是从后往前的(不知是否准确)。
例:
select a.*,b.* from UsrInf a,OrgInf b where LogNam='njnydx9' and b.OrgId=a.blnorg
SQL语句从后往前解析,把LogNam='njnydx9'换到后边,避免了更多结果集的连接,提高了执行效率
2、in的效率问题
看网上都说in相当于多个条件的or。实际测试后发现in的执行速度更快。
例:
以下查询结果集数量为 91606
select * from usrbks where boksts='E' or boksts='D' or boksts='O' 用时0.004s
select * from usrbks where boksts in('E','D','O') 用时0.001s