索引的理解
【mysql索引类型】
普通-唯一-主键-组合-全文-外键
1.普通索引:加速查询
2.唯一索引:加速查询,重复插入会报错
3.主键索引:加速查询,重复插入会报错,一个表只能有一个
4.组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
5.全文索引:对文本的内容进行分词,进行搜索,一般只用于英文文本,因为英文文本有空格
6.外键索引
【mysql索引的结构是什么】
Mysql索引主要有两种结构:B+Tree索引和Hash索引。InnoDB使用B+Tree的方式存储索引,
我们一般所说的索引,如果没有特殊说明的话,就是指B+树结构组织的索引。
B+数的结构在分成两部分:
上层是非叶子节点,用来存放索引信息。
下层是叶子节点,负责存放数据。
上下层的结构类似书本的目录和页面,先定位到上层的索引目录,再定位到下层的数据页。
(操作系统储存数据的最小单位是页)
索引的外形也是一张表,保存了主键和索引字段,并指向实体表的记录,所以索引列也要空间。
虽然索引大大提高了查询速度,但是会降低更新表的速度,如对表进行insert,update和delete。因为更新表时,mysql不仅要保存数据,还要保存一下索引文件每次都要添加索引列的字段。
mysql索引存储结构和特点
https://blog.csdn.net/bible_reader/article/details/100007292
MYSQL INNODB数据存储结构
https://blog.csdn.net/bohu83/article/details/81086474
B-/B+树 MySQL索引结构
https://www.cnblogs.com/f66666/p/9782920.html
【如何添加索引,索引的要点。设置索引的优缺点】
添加索引主要是在字段设置上添加index关键字。
正确添加索引,可以提升几十到几百倍的查询速度。
但不应该乱添加索引,因为添加索引会制造成本,成本是会减慢insert update delete的性能速度。
索引大小一般是数据的三分之一,而且索引会加载进内存,因此不合理添加索引,反而会减慢查询性能。
优点:
1.大大减少了服务器需要扫描的数据量
2.可以帮助服务器避免排序或减少使用临时表排序
3.索引可以随机I/O变为顺序I/O
缺点:
1.需要占用磁盘空间,因此冗余低效的索引将占用大量的磁盘空间
2.降低DML性能,对于数据的任意增删改都需要调整对应的索引,甚至出现索引分裂
3.索引会产生相应的碎片,产生维护开销
【MySQL索引失效的情况】
1.or条件中不是全部添加索引。因为查询会一次完成,只要不是全部条件字段设置索引,就会当做没有索引的设定来查询。
2.like查询以%开头。因为%代表从根节点开始查询,没有定位功能,所以索引失效。
3.全表扫描要比使用索引快,没有必要使用索引,因为不需要查询索引结构。
MySQL索引失效的几种情况汇总
https://www.jb51.net/article/196415.htm
【MySQL存储引擎InnoDB和MyISAM的区别】
MySQL中MyISAM与InnoDB中都是使用什么数据结构存储表数据,有什么区别呢?
https://zhuanlan.zhihu.com/p/149830365
mySql的底层InnoDB数据结构
https://www.jianshu.com/p/c34ae51b2866
MySQL的InnoDB索引原理详解
https://www.cnblogs.com/williamjie/p/11081081.html
下一页: 常用的Linux命令有哪些,如果快速定位日志,如果监听日志的输出
发表回复