概述
1.Mysql索引的类型
普通索引(CREATE INDEX)
唯一索引 / 组合索引 / 复合索引,索引列的值必须唯一(CREATE UNIQUE INDEX)
多列索引,使用多个列去创建索引,多列索引反应在B+Tree里面其实就是相当于B+Tree的key是由多个列的值组成的。
主键索引(PRIMARY KEY),一个表只能有一个
全文索引(FULLTEXT INDEX),InnoDB 不支持
2.什么时候创建索引?
建表的时候需要根据查询需求来创建索引
经常作为查询条件的字段 (WHERE 条件)
经常用作表连接的字段
经常出现在 order by, group by 之后的字段
经常出现在以上这些语句后面字段需要添加索引增加查询的效率
3.创建索引有哪些需要注意的地方?
非空字段 NOT NULL,Mysql 很难对空值作查询优化。反应在B+树结构里面就是空值无法去作比较这个时候索引就利用不上了。(很多互联网公司的建表规范要求索引字段有默认值)
区分度高,离散度大,作为索引的字段值尽量不要有大量相同的值。反应在B+树里面就是当很多字段是一样的时候说明B+树里面很多key是相同的,所以需要大量的去比较这样效率就比较低。(一般不推荐枚举值就几个字段去建索引)
索引的长度不要太长(比较好费时间),作为索引的时候在B+树里面作为一个key来存在的,主键索引一般使用自增的int值,因为int值很容易去比较,如果是字符串的时候去比较不同树之间结点key的时候,就需要做一个很长的比较。如果在字符串类型上面去做索引的话就一定要指定长度不能太长否则比较的时候就会耗费时间。
最后
以上就是现实乌龟为你收集整理的Mysql索引的类型 和 什么时候创建索引 及 创建索引有哪些需要注意的地方的全部内容,希望文章能够帮你解决Mysql索引的类型 和 什么时候创建索引 及 创建索引有哪些需要注意的地方所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复