在 MYSQL 中,我不想更改太多的 Wordpress 插件中的一些代码正在运行以下查询:
SELECT * WHERE cond1 AND (field1 = val1 OR field2 = val2)
但是,尽管 val1 和 val2 上有索引,但它运行非常缓慢。(慢查询日志确认它扫描了所有行。)我可以提示 MYSQL 它应该始终将公式扩展为以下等效但更快的形式吗?
SELECT * WHERE cond1 AND (field1 = val1)
UNION
SELECT * WHERE cond1 AND (field2 = val2)
这将显着减少扫描的行数,因此将产生非常出色的性能。我也想知道
SELECT * WHERE cond1 AND (field1 in (val1, val2))
谢谢!
编辑:关于表格的一些信息和查询解释在这里http://pastebin.com/Qd1ZaVKD但似乎不一致。如果我从 myphpadmin 运行查询,有时会生成缓慢的查询日志条目,有时不会生成,即使当其他用户导致此类行时仍会继续生成。