【发布时间】:2013-09-11 10:00:28
【问题描述】:
我有一个正在尝试优化的后续查询,因为表中有数百万个数据。我尝试了 MySql Explain 但没有获得执行查询的优化方式:
SELECT * FROM tbl
WHERE (SEND ='abc' AND TYPE IN ('A', 'D') and FLAG !='Y')
OR (REC ='abc' AND TYPE = 'I' and FLAG !='Y')
这个查询使用 index_merge 和 sort_union() 因为我有以下两个索引:
1。在 SEND 和 REC 上
2。录制时
我尝试使用两个不同的查询而不是两次访问服务器,而不是上面使用 ref 类型的查询。
SELECT * FROM tbl
WHERE SEND ='abc' AND TYPE IN ('A', 'D') and FLAG !='Y'
还有
SELECT * FROM tbl
WHERE REC ='abc' AND TYPE = 'I' and FLAG !='Y'
由于数据太大我无法得出结论,请告诉我上述两个优化查询或更好的方法。
谢谢!!
【问题讨论】:
标签: mysql sql query-optimization sql-execution-plan