我最近了解到,可以通过使用以下带有OR的select语句来跨多个列在MySQL表中进行搜索:
SELECT * data WHERE TEMP = "3000" OR X ="3000" OR Y="3000";
该命令返回所需的结果,但是在只有约26万行的表中返回结果大约需要1.7秒。我还已经为搜索的每个列添加了索引。
有没有一种方法可以优化此查询?还是有另一个更快但返回相同结果的方法?
另一种选择是使用UNION ...
SELECT * FROM data WHERE TEMP = "3000"
UNION
SELECT * FROM data WHERE X ="3000"
UNION
SELECT * FROM data WHERE Y="3000";
...然而,提高性能的真正关键首先是索引,其次是查询分析器。通常,数据确定哪个更快,因为TEMP可能比Y为“ 3000”的可能性小一百倍-因此,例如,它应该在原始OR语句中排在第一位。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句