mysql索引基础
2013-10-07 21:13
232 查看
1.建立多列索引
如何去建立一个多列索引,最重要的一个问题是如何安排列的顺序是至关重要的,比如需要对一个表里面的两个字段foo,bar建一个索引,那么索引的顺序是(foo,bar)还是(bar,foo)呢。在搞清楚如何安排顺序之前先了解一个概念,cardinality:金山的翻译是"集的势",比如,tb表有1700条记录,foo字段有750个不同的记录,那么就可以说We
have a cardinality of 750 for foo。总规则可以说是cardinality越大的字段应该排在索引的第一位就是说索引的位置是(foo,bar),因为cardinality越大那么第一次取出来的记录集就越小,再进行第二次查询的次数就越少了。不过这只是对于建两个索引的规则,如果是三个以上就没有那么简单了,具体地看原文,有比较详细的例子。还需要提出的是即使我们建了一个很有效的索引,但是查询优化器也许会选择不用它,如果它会考虑更多因素以决定这个索引是否有足够的效率。
2.
如何去建立一个多列索引,最重要的一个问题是如何安排列的顺序是至关重要的,比如需要对一个表里面的两个字段foo,bar建一个索引,那么索引的顺序是(foo,bar)还是(bar,foo)呢。在搞清楚如何安排顺序之前先了解一个概念,cardinality:金山的翻译是"集的势",比如,tb表有1700条记录,foo字段有750个不同的记录,那么就可以说We
have a cardinality of 750 for foo。总规则可以说是cardinality越大的字段应该排在索引的第一位就是说索引的位置是(foo,bar),因为cardinality越大那么第一次取出来的记录集就越小,再进行第二次查询的次数就越少了。不过这只是对于建两个索引的规则,如果是三个以上就没有那么简单了,具体地看原文,有比较详细的例子。还需要提出的是即使我们建了一个很有效的索引,但是查询优化器也许会选择不用它,如果它会考虑更多因素以决定这个索引是否有足够的效率。
2.
相关文章推荐
- mysql基础(九) 索引和视图
- mysql基础:6、mysql创建主键和索引
- MySQL——索引基础
- 着重基础之—MySql 不能遗忘的索引操作
- MySQL基础day02_表结构和索引类型-MySQL 5.6
- MySQL基础之索引实战篇
- MySQL索引基础--菜鸟篇
- Mysql索引基础总结
- mysql 索引,死锁 配置 等 基础理论知识整理
- [置顶] mysql 索引基础
- mysql 入门基础(2)—外键、主键和索引
- (一) MySQL 性能优化 基础之索引概念
- mysql基础(一)——表、索引、视图
- jdbc-mysql基础 ResultSet getObject的索引值参数从1开始
- mysql 索引的基础操作汇总(四)
- Mysql 索引的基础(下)
- MySQL建立索引的基础规则
- MYSQL基础(视图、索引、存储过程与函数、流程控制语句)
- MYSQL-基础操作-索引与查询执行计划
- MYSQL基础02 - 索引的操作