MySQL 索引

一、索引是什么

索引 就是目录

二、索引有什么用

索引的用处就是查东西的时候不用一页一页的翻找  你根据索引就能直接跳到精准的那一页

三、设计原则

1. 条件做索引

可以这么说,最适合做索引的字段是出现在where条件中的字段,或表连接子句中的字段。

2. 尽量唯一字段做索引

如果有某个字段重复量很少,那么给它加上索引来查询的效果是非常爽的。

3. 索引不可过多

过多则慢,每个索引都会占据磁盘空间,并降低写操作性能,在修改表的同时,索引也要进行更新,所以索引越多,所花费的时间越长,索引越多,会导致mysql优化器查询的时候出现选择困难症。

四、具体索引

1. 主键索引

这个不用想太多,主键自增非空直接扔给id字段,这个不用讲什么道理不道理的,就两字:规范。

2. 唯一索引

加上唯一索引之后,这个字段将不能出现重复值。(其实我有时候加这个索引不是为了查询,而是为了保证值的唯一性 ^.^ )

3. 普通索引

就是普通的索引,为了查询而存在。

4. 组合索引

一般来说,组合索引是用在保证组合唯一的需求上,比如a字段和b字段的组合值必须唯一,还需要知道的是,组合索引ab,当我只拿索引中的单个字段来查时,如where a="xxx" 时,会使用到这个索引,但是如果我where b="xxx"时,是不会使用到这个索引的,所以组合索引以左边索引为主索引。

5. 全文索引

还有一种叫全文索引,也就是在文本中搜索关键字的时候有这个索引需求,这个索引原来只支持MyISAM,InnoDB从MySQL5.6版本开始提供对全文索引的支持。

五、个人分享

建表的时候,结合业务思考一下这张表在查询时经常要出现在where条件中的字段,在心里按照使用频率排个序,挑频率最高的一到两个用来做索引。

 

posted @ 2018-10-24 15:05  不该相遇在秋天  阅读(353)  评论(0编辑  收藏  举报