1.最左原则 注意遇到> < like between失效 2.对于like 查询 遇到最左%索引无效 3.SQL性能优化目标:至少要达到range(对索引进行范围查找)级别,要求是ref(普通索引)级别,最好是consts(单表中最多只有一个匹配行=主键或唯一索引) 4.不要写一个大而全的数据更新 ...
分类:
数据库 时间:
2018-06-11 13:48:28
阅读次数:
314
一、 介绍 二、 索引的原理 三、 索引的数据结构 四、 聚集索引与辅助索引 五、 MySQL索引管理 六、 测试索引 七、 正确使用索引 八、 联合索引与覆盖索引 九、 查询优化神器-explain 十、 慢查询优化的基本步骤 十一、 慢日志管理 一 、介绍 为何要有索引? 一般的应用系统,读写比 ...
分类:
数据库 时间:
2018-05-23 13:04:14
阅读次数:
199
redis用的人比较多,其中zset大家都熟悉,主要用于排名场景。zset数据结构,分成两部分,一部分是用于排序,一部分用于缓存键值。先看看结构: 上面,跳跃表用于排序结构,可以按照名次,积分查找对应键, 时间复杂度: log(n)。按照名次,积分范围查找一系列键时, 先查询满足条件的第一个键,然后 ...
分类:
其他好文 时间:
2018-04-12 18:36:29
阅读次数:
487
explain + sql语句 返回的type类型有 all 全表扫描(特殊的有limit),type为此类型时,表示该表可以优化 index 全索引扫描 range 对索引列进行范围查找 index_merge 合并索引,使用多个单列索引 ref 根据索引查找一个或多个值 eq_ref 连接时使用 ...
分类:
数据库 时间:
2018-03-29 20:09:13
阅读次数:
205
Hash索引的限制 Hash索引必须进行二次查找 Hash索引无法用于排序 Hash索引不支持部分索引查找,也不支持范围查找 Hash索引中Hash码的计算可能存在Hash冲突 为什么要使用索引 索引大大减少了存储引擎需要扫描的数据量 索引可以帮助我们进行排序以避免使用临时表 索引可以把随机I/O变 ...
分类:
数据库 时间:
2018-03-21 15:39:54
阅读次数:
206
1、测试需要学习简单的基本的sql语句选择:selectfromtable1where范围插入:insertintotable1(field1,field2)values(value1,value2)删除:deletefromtable1where范围更新:updatetable1setfield1=value1where范围查找:selectfromtable1wherefield1like’%
分类:
数据库 时间:
2018-03-19 14:58:38
阅读次数:
234
一直以为k-d树是一种高级的数据结构,和LCT可以并列;不过实际上没那么厉害。 k-d树解决的是k维空间里的点的范围查找问题。k维空间必须满足两点之间的距离是欧几里德距离,比如二维的话,A(x1,y1)和B(x2,y2)的距离就是√(x1-x2)2+(y1-y2)2。 k-d树是一颗二叉搜索树,只不 ...
分类:
其他好文 时间:
2018-02-04 00:26:45
阅读次数:
179
1,获得transport client连接实例 2, 封装查询对象,可以用* 通配索引库,以及设置最大返回数量 3, 根据id删除索引文档接口,单个与批量,删除接口索引库不能用通配'*'来匹配 1,单个id删除索引文档 2, 根据ids批量删除索引文档 2,Elasticseach根据索引的时间, ...
分类:
编程语言 时间:
2018-01-27 23:12:24
阅读次数:
451
MySQL主要提供2种方式的索引:B-Tree索引,Hash索引 B树索引具有范围查找和前缀查找的能力,对于有N节点的B树,检索一条记录的复杂度为O(LogN)。相当于二分查找。 哈希索引只能做等于查找,但是无论多大的Hash表,查找复杂度都是O(1)。 显然,如果值的差异性大,并且以等值查找(=、 ...
分类:
数据库 时间:
2018-01-16 18:00:04
阅读次数:
203
为什么使用索引,当然是查找快了,但是索引也会负面的代价,建立索引会占用空间,表中的记录添加和删除,会对数据库进行调整,消耗服务器的资源。,所以在建立索引的时候我们要有一些原则。 一、查询中很少涉及到的列或者重复值较多的列不建立索引。因为并不会增加查询速度,然后还有索引的缺点。 二、对于按范围查找的字 ...
分类:
其他好文 时间:
2017-09-29 22:49:48
阅读次数:
112