Nat*_*n H 6 mysql database indexing
当我在MySQL中手动创建表时,我为每个字段添加一个索引,我认为我将用于查询.
当我使用phpMyAdmin为我创建表,并在create-table表单中选择我的索引时,我看到phpMyAdmin将我的索引合并为1(加上我的主要索引).
有什么不同?这个比那个好吗?在这种情况下?
谢谢!
Mar*_*ers 13
两者都不是一个特别好的策略,但如果我不得不选择我会选择多个单一索引.
原因是只有在索引的任何完整前缀中使用所有字段时才能使用索引.如果你有一个索引(A,B,C,d,E,F),那么这工作正常,可以过滤对查询a或查询该过滤器上都a和b,但是这将是无用的查询过滤只c.
没有简单的规则总能用于选择最佳索引.您需要查看正在进行的查询类型,并选择可加快这些特定查询的索引.如果仔细考虑列的顺序,可以找到少量对多个不同查询有用的索引.例如,如果在一个查询中你过滤在两个a和b,并可以过滤另一个查询仅b然后在索引(B,A)将通过这两个查询,但索引的可用(A,B)不会.
这实际上取决于您的查询.有些查询可以更好地使用多列索引,有些则不能.EXPLAIN是你的朋友.
http://dev.mysql.com/doc/refman/5.6/en/explain.html
这里还有一个非常好的资源:
http://dev.mysql.com/doc/refman/5.6/en/optimization-indexes.html
| 归档时间: |
|
| 查看次数: |
2750 次 |
| 最近记录: |