一索引原理索引的目的在于提高查询效率,与我们查阅图书所用的目录是一个道理:先定位到章,然后定位到该章下的一个小节,然后找到页数。相似的例子还有:查字典,查火车车次,飞机航班等本质都是:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。数据库也是一样,但显然要复杂的多,因为不仅面临着等值查询,还
分类:
数据库 时间:
2020-10-18 09:58:20
阅读次数:
77
https://www.cnblogs.com/luyucheng/p/6289714.html https://www.jb51.net/article/69676.htm https://blog.csdn.net/guo_qiangqiang/article/details/88794971 ...
分类:
数据库 时间:
2020-10-13 17:39:11
阅读次数:
26
1.对过滤字段进行了函数处理 对字段做了函数计算,就用不上索引了 比如对时间类型的处理 select month(now()) 2.发生了字段类型的隐式转换 尤其在存数据期时一定要注意,为数值类型 过滤值为字符型--走索引 过滤值为数值型--字段的vachar发生隐式转换 相当于执行了函数 cast ...
分类:
数据库 时间:
2020-09-17 13:25:44
阅读次数:
27
Hash索引 主要就是通过Hash算法(常见的Hash算法有直接定址法、平方取中法、折叠法、除数取余法、随机数法),将数据库字段数据转换成定长的Hash值,与这条数据的行指针一并存入Hash表的对应位置;如果发生Hash碰撞(两个不同关键字的Hash值相同),则在对应Hash键下以链表形式存储。 检 ...
分类:
数据库 时间:
2020-09-08 20:50:17
阅读次数:
46
Mysql索引优化 准备数据 建立一个测试用表 往表中插入10w条随机数据的存储过程 CREATE DEFINER=`root`@`%` PROCEDURE `insert_tbl`(in max_num int(10)) BEGIN declare i int default 0; set aut ...
分类:
数据库 时间:
2020-08-09 14:25:01
阅读次数:
106
什么是索引 在现实生活中,我们经常去图书馆查阅图书。现在我们将所有图书杂乱无章的摆放在一起,那么找一本书就像大海捞针一样效率非常低。如果我们按分类整理排序后,根据类别去找对应的图书那么效率就很高了。其实这个过程就是在建立索引。 查看mysql中语句执行效率 show variables like ' ...
分类:
数据库 时间:
2020-08-08 17:46:39
阅读次数:
87
一、索引的本质 没有索引的sql是没有灵魂的,查询速度是非常慢的。 本质:索引是帮助MySql快速获取数据的排好序的数据结构。 二、 索引数据结构: 二叉树 :层级太高,自增主键索引甚至退化成了链表 红黑树 :红黑树是平衡二叉树的一种,相对于二叉树好点,但是当数据大时,层级还是很高,查询速度慢。 H ...
分类:
数据库 时间:
2020-07-30 21:44:40
阅读次数:
80
一、零铺垫 在介绍B树之前,先来看另一棵神奇的树——二叉排序树(Binary Sort Tree),首先它是一棵树,“二叉”这个描述已经很明显了,就是树上的一根树枝开两个叉,于是递归下来就是二叉树了(下图所示),而这棵树上的节点是已经排好序的,具体的排序规则如下: 若左子树不空,则左子树上所有节点的 ...
分类:
数据库 时间:
2020-07-29 21:54:05
阅读次数:
91
索引是什么 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 可以得到索引的本质:索引是数据结构,索引的目的是提高查询效率,可以类比英语新华字典,根据目录定位词语 如果没有目录呢,就需要从A到Z,去遍历的查找一遍,一个一个找和直接根据目录定位到数据,差的就是天 ...
分类:
数据库 时间:
2020-07-29 10:02:38
阅读次数:
66
一 索引的概念 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 ? 数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算 ...
分类:
数据库 时间:
2020-07-27 09:41:04
阅读次数:
92