|
1
4
与所有DBMS优化问题一样,这取决于您的执行引擎。 我将从最简单的场景开始,每个列上有四个单独的索引。
这将确保以您没有预料到的方式使用这些列的任何查询仍然可以正常运行(a)
任何一个好的执行引擎都会首先有效地选择基数最小的索引,从而减少结果集,然后在此基础上执行其他过滤器。 只有 如果您有性能问题,可以考虑使用不同的索引来改进它。您应该测试生产类型数据的性能,而不是您自己构建的任何测试数据库(除非它们反映了生产类型的属性)。 和 你掌握的数据。 你应该做什么。 如果您担心在生产环境中玩游戏(您应该担心),那么您应该使用类似的规范设置另一个环境,将生产数据复制到其中,然后在那里摆弄索引。 |
|
|
2
3
这是一个选项,另一个是fieldx、fieldy、field1上的索引和field2上的索引(与第一个查询相同!)。现在也有两个索引,但第二个索引要小得多。第二个查询可以同时使用两个索引,较大的索引用于查询的AND部分,较小的索引用于field2的OR部分。MySQL现在应该足够聪明了。 解释会帮你的。 |
|
|
Bard.Mus · 迁移后的数据库字符集环境 1 年前 |
|
Efannnnnn · 将Id数据存储到任何页面 1 年前 |
|
|
yooooo · 用于在块中删除的存储过程-LOOP未执行 1 年前 |
|
John Beasley · 更新一定数量记录的连续日期 1 年前 |
|
|
ColinM · MySQL以前的结果查询返回不正确的值 1 年前 |
|
Sergey_Z · MySQL只需无条件连接2个表和交叉连接 1 年前 |