MySQL进阶介绍之索引(总结分享)

文 / @WordPress主题

MySQL进阶介绍之索引(总结分享)

什么是索引?

索引是帮助MySQL高效获取数据的数据结构。可以将索引简单的理解为“排好序的快速查找数据结构”。在MySQL中,索引本身也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

索引的优势和劣势

索引的优势在于可以提高查询效率,降低数据库的IO成本,并且通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。

而劣势在于索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上,同时也会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。

MySQL索引分类

MySQL索引分类包括单值索引、唯一索引、复合索引、前缀索引等。其中聚集索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。

索引的创建

添加数据表的索引有几种方式:创建、删除、查看、使用。创建索引时有四种方式:创建主键索引、创建唯一索引、创建普通索引、创建全文索引。

哪些情况需要创建索引?

主键自动建立唯一索引、频繁作为查询条件的字段应该创建索引、查询中与其它表关联的字段建立索引、频繁更新的字段不适合创建索引、Where条件里用不到的字段不创建索引、单键/组合索引的选择问题(在高并发下倾向创建组合索引)、查询中排序的字段可以通过索引去访问、查询中统计或者分组字段。

哪些情况不适合创建索引?

表记录太少、经常增删改的表、数据重复且分布平均的表字段。因此应该只为最经常查询和最经常排序的数据列建立索引。如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。

总结

索引在MySQL中扮演着重要的角色,可以提高查询效率,降低数据库的IO成本。但是索引也会影响更新表的速度,因此需要根据实际情况进行优化。建立最优秀的索引,可以大大提高MySQL数据库的性能。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。