需求:
一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以呢对查询语句的优化显然是重中之重.说起加速查询,就不得不提到索引了.
索引:
简单的说,相当于图书的目录,可以帮助用户快速的找到需要的内容.
在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍.
本质:
索引本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据.
① B+TREE 索引
b+树的查找过程
强烈注意: 索引字段要尽量的小,磁盘块可以存储更多的索引.
value)形式的键值对,允许多个key对应相同的value,但不允许一个key对应多个value,为某一列或几列建立hash索引,就会利用这一列或几列的值通过一定的算法计算出一个hash值,对应一行或几行数据.? ?hash索引可以一次定位,不需要像树形索引那样逐层查找,所以呢具有极高的效率.
假设索引使用hash函数f( ),如下:
此时,索引的结构大概如下:
MySQL中常见索引有:
普通索引
唯一索引
主键索引
组合索引
普通索引仅有一个功能:加速查询
#创建表同时添加name字段为普通索引 create table tb1( id int not null auto_increment primary key, name varchar(100) not null, index idx_name(name) );
创建表+索引
以上就是土嘎嘎小编为大家整理的MySQL 之 索引原理与慢查询优化相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!