MySQL索引篇----索引的定义与优缺点

索引介绍数据库

索引是什么数据结构

官⽅介绍索引是帮助MySQL⾼效获取数据的数据结构。更通俗的说,数据库索引好⽐是⼀本书前⾯的⽬录,能加快数据库的查询速度。排序

⽅便查找---检索
索引查询内容---覆盖索引
排序索引

⼀般来讲索引自己也很⼤,不可能所有存储在内存中,所以索引每每是存储在磁盘上的⽂件中的(可能存储在单独的索引⽂件中,也可能和数据⼀起存储在数据⽂件中)。内存

咱们一般所说的索引,包括汇集索引、覆盖索引、组合索引、前缀索引、惟⼀索引等,没有特别说明,默认都是使⽤B+树结构组织(多路搜索树,并不⼀定是⼆叉的)的索引。效率

索引的优点和劣势搜索

优点:
能够提⾼数据检索的效率,下降数据库的IO成本,相似于书的⽬录。 -- 检索经过索引列对数据进⾏排序,下降数据排序的成本,下降了CPU的消耗。 --排序
被索引的列会⾃动进⾏排序,包括【单列索引】和【组合索引】,只是组合索引的排序要复杂⼀些。
若是按照索引列的顺序进⾏排序,对应order by语句来讲,效率就会提⾼不少。
where 索引列 在存储引擎层 处理
覆盖索引,不须要回表查询数据

劣势:
索引会占据磁盘空间
索引虽然会提⾼查询效率,可是会下降更新表的效率。⽐如每次对表进⾏增删改操做,MySQL不只要保存数据,还有保存或者更新对应的索引⽂件。查询

相关文章
相关标签/搜索