Login
网站首页 > 文章中心 > 其它

MySQL 之 索引原理与慢查询优化_mysql索引原理及慢查询优化

作者:小编 更新时间:2023-08-07 10:53:19 浏览量:26人看过

1. 索引介绍

需求:

一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以呢对查询语句的优化显然是重中之重.说起加速查询,就不得不提到索引了.

索引:

简单的说,相当于图书的目录,可以帮助用户快速的找到需要的内容.

在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍.

本质:

索引本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据.

2.索引方法

① B+TREE 索引

MySQL 之 索引原理与慢查询优化_mysql索引原理及慢查询优化

MySQL 之 索引原理与慢查询优化_mysql索引原理及慢查询优化

b+树的查找过程

强烈注意: 索引字段要尽量的小,磁盘块可以存储更多的索引.

value)形式的键值对,允许多个key对应相同的value,但不允许一个key对应多个value,为某一列或几列建立hash索引,就会利用这一列或几列的值通过一定的算法计算出一个hash值,对应一行或几行数据.? ?hash索引可以一次定位,不需要像树形索引那样逐层查找,所以呢具有极高的效率.

假设索引使用hash函数f( ),如下:

此时,索引的结构大概如下:

MySQL 之 索引原理与慢查询优化_mysql索引原理及慢查询优化


③索引类型?

MySQL中常见索引有:

普通索引

唯一索引

主键索引

组合索引

普通索引仅有一个功能:加速查询

#创建表同时添加name字段为普通索引
create table tb1(
   id int not null auto_increment primary key,
   name varchar(100) not null,
   index idx_name(name)  
);

创建表+索引

以上就是土嘎嘎小编为大家整理的MySQL 之 索引原理与慢查询优化相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章