Mysql合理建立索引,索引优化
写在前面
在我们日常使用数据库的时候,肯定避免不了对数据库的优化。那么对数据库的优化又少了不
索引
的知识。
是的,建立
索引
能极大地提高查询的效率。那么你知道吗,如果合理建立索引,可以更大地榨出数据库的性能——也就等同于进一步提高查询效率。
写下这篇文章就是为了记录一下对索引的优化,合理建立索引。
什么是索引
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。
我们可以简单理解为:快速查找排好序的一种数据结构。Mysql索引主要有两种结构:B+Tree索引和Hash索引。
索引就相当于字典前的目录,如果这个目录划分规划更好,那么我们找到想要的数据就会更方便,也就提高了查询的效率。
索引的类型有:
- normal:表示普通索引
- unique:表示唯一的,不允许有重复值的索引
- full textl: 表示全文搜索的索引,用于搜索很长一篇文章的时候,效果最好。
建立索引的场景
索引不是越多越好,因为每次更新、插入数据,就需要对索引文件进行变动,会减低该类型操作的执行效率。
如果建立索引的字段太多,影响就会很大。
所以我们
只在合理的字段上建立索引
。
-
在经常用来当查询条件
(where,on,group by,order by)
的字段上建立索引。 - 在数据的维度比较大的字段上建立索引。
- 对数据较小的列使用索引,可以使索引文件更小,同时内存中也可以装载更多的索引键。
-
为较长的字符串使用前缀索引。
比如数据的长度大部分是150个字节,我们只建立前100个字节的索引。
常见的可以用于建立索引的字段场景:
① 用户id 在订单表中的用户id字段上建立索引,根据用户id筛选订单,则会很快查询出用户的订单。