MySQL-索引起步

MySQL-索引起步

起男 1,417 2021-01-13

MySQL-索引起步

概述

MySQL官方对象索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。

在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引

一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。建立索引是数据库中用来提高性能的最常用的方式

优势

  • 类似于书籍的目录索引,提高数据检索的效率,降低数据库的io成本
  • 通过索引对数据进行排序,降低数据排序的成本,降低cpu的消耗

劣势

  • 实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间的
  • 虽然索引提高了查询效率,同时也降低了表更新的速度,如对表进行insert、update、delete。因为更新表时,MySQL不仅要保存数据,还要保存一下索引列的字段,都会调整因为更新所带来的键值变化后的索引信息

原文:https://mp.weixin.qq.com/s/VUYse9nc8kq2qr_nIlwglQ