MySQL索引
只要是关系型数据库,索引都是其查询最核心的关键。
当表中的数据量到达几十万甚至上百万的时候,SQL查询所花费的时间会很长,导致业务超时出错,此时就需要用索引来加速SQL查询。
由于索引也是需要存储成索引文件的,因此对索引的使用也会涉及磁盘I/O操作。如果索引创建过多,使用不当,会造成SQL查询时,进行大量无用的磁盘I/O操作,降低了SQL的查询效率, 适得其反,因此掌握良好的索引创建原则非常重要!
索引也是数据结构
,要对索引列,存储引擎会对这列的值进行排序,当我们索引太多的话,我们对表增加或者减少或者更新元素的时候,都会涉及到索引文件的改动。索引文件改动也涉及到磁盘I/O操作。
索引分类
索引是创建在表上的,是对数据库表中一列或者多列的值进行排序的一种结果。索引的核心是提高查询的速度
!
不用的时候,存储在磁盘上的。索引是要从磁盘上的文件读出来的。
物理 上分为(聚集索引&非聚集索引)
逻辑 上(就是下面阐述的)
索引的优点: 提高查询效率
索引的缺点: 索引并非越多越好,过多的索引会导致CPU使用率居高不下,由于数据的改变,会造成索引文件的改动,过多的磁盘I/O造成CPU负荷太重