欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

MySQL第10天:MySQL索引优化分析之索引介绍

发布时间:2025/6/15 数据库 23 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MySQL第10天:MySQL索引优化分析之索引介绍 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

       MySQL索引优化分析之索引简介
1、索引是什么?
2、索引优势、劣势
3、索引分类、基本语法
4、索引结构
5、哪些情况需要创建索引?
6、哪些情况不需要创建索引?

---------------------------------------------------------------------------------------------------------------------

1、索引是什么?

(1)定义:索引(index)是帮助MySQL高效获取数据的数据结构,排好序的快速查找的数据结构。

(2)结论:1)索引的目的是提高查询效率,可以类比字典。2)在数据之外,数据库系统还维护着满足特定算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引(B tree 索引)。3)索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。

注意:我们平常所说的索引都是指B树(多路搜索树,并不一定是二叉的)结构组织索引。其中聚集索引,次要索引,符合索引,前缀索引,唯一索引默认使用B+树索引,统称索引,除了B+树类型索引外还有哈希索引(hash index)。

2、索引优势、劣势

优势:

(1)类似图书馆书目索引,提高数据检索的效率,降低书库的IO成本;
(2)通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。

劣势:

(1)索引是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引列也占用空间。
(2)虽然索引提高了查询速度,但同时降低了更新表的速度,如对表进行INSERT、UPDATE、DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,调整因更新带来的键值变化后的索引信息。
(3)索引只是提高效率的一个因素,如果你的MySQL有大量的表,就需要花事件研究建立优秀的索引或优化查询语句。

3、索引分类

分类:

(1)单值索引
         一个索引只包含单个列,一个表可以有多个单列索引(建议一个表不超过5个索引)。

(2)唯一索引
        索引列的值必须唯一,但允许有空值。

(3)符合索引
       一个索引包含多个列

基本语法:

4、索引结构

(1)BTree索引
(2)Hash索引
(3)full-text索引
(4)R-Tree索引

BTree索引解索原理:

5、哪些情况需要创建索引?

6、哪些情况不需要创建索引? 

 

总结

以上是生活随笔为你收集整理的MySQL第10天:MySQL索引优化分析之索引介绍的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。