|
1
4
与所有DBMS优化问题一样,这取决于您的执行引擎。 我将从最简单的场景开始,每个列上有四个单独的索引。
这将确保以您没有预料到的方式使用这些列的任何查询仍然可以正常运行(a)
任何一个好的执行引擎都会首先有效地选择基数最小的索引,从而减少结果集,然后在此基础上执行其他过滤器。 只有 如果您有性能问题,可以考虑使用不同的索引来改进它。您应该测试生产类型数据的性能,而不是您自己构建的任何测试数据库(除非它们反映了生产类型的属性)。 和 你掌握的数据。 你应该做什么。 如果您担心在生产环境中玩游戏(您应该担心),那么您应该使用类似的规范设置另一个环境,将生产数据复制到其中,然后在那里摆弄索引。 |
|
|
2
3
这是一个选项,另一个是fieldx、fieldy、field1上的索引和field2上的索引(与第一个查询相同!)。现在也有两个索引,但第二个索引要小得多。第二个查询可以同时使用两个索引,较大的索引用于查询的AND部分,较小的索引用于field2的OR部分。MySQL现在应该足够聪明了。 解释会帮你的。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |