MySQL进阶介绍之索引(总结分享)
MySQL进阶介绍之索引(总结分享)
什么是索引?
索引是帮助MySQL高效获取数据的数据结构。可以将索引简单的理解为“排好序的快速查找数据结构”。在MySQL中,索引本身也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
索引的优势和劣势
索引的优势在于可以提高查询效率,降低数据库的IO成本,并且通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。
而劣势在于索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上,同时也会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。
MySQL索引分类
MySQL索引分类包括单值索引、唯一索引、复合索引、前缀索引等。其中聚集索引,复合索引,前缀索引,唯一索引默认都是使用B+树索引,统称索引。
索引的创建
添加数据表的索引有几种方式:创建、删除、查看、使用。创建索引时有四种方式:创建主键索引、创建唯一索引、创建普通索引、创建全文索引。
哪些情况需要创建索引?
主键自动建立唯一索引、频繁作为查询条件的字段应该创建索引、查询中与其它表关联的字段建立索引、频繁更新的字段不适合创建索引、Where条件里用不到的字段不创建索引、单键/组合索引的选择问题(在高并发下倾向创建组合索引)、查询中排序的字段可以通过索引去访问、查询中统计或者分组字段。
哪些情况不适合创建索引?
表记录太少、经常增删改的表、数据重复且分布平均的表字段。因此应该只为最经常查询和最经常排序的数据列建立索引。如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。
总结
索引在MySQL中扮演着重要的角色,可以提高查询效率,降低数据库的IO成本。但是索引也会影响更新表的速度,因此需要根据实际情况进行优化。建立最优秀的索引,可以大大提高MySQL数据库的性能。

-
MySQL Workbench怎么建立数据库(附:sql语句创建数据库方法) 2023-07-20 12:22:29
-
MySQL Workbench是什么?(附:如何设置中文教程) 2023-07-20 11:42:31
-
mysql驱动是什么 2023-05-14 07:00:03
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
mysql怎么查询临时表 2023-05-14 07:00:02