MySQL索引及执行计划 索引 合理的建立索引可以加快数据查询,例如,学校图书管为每一本书编号,根据编号可以快速锁定一本书所在位置。MySQL索引默认B+树索引。索引虽然能够提高检索效率,但同时也会降低更新的速度,因为 也会操作索引文件,会调整因为更新等操作带来的键值变化后的索引信息。 索引类型 主 ...
分类:
数据库 时间:
2020-02-05 23:43:54
阅读次数:
90
使用前缀索引,定义好长度,就可以做到既节省空间,又不用额外增加太多的查询成本。 于是,你就有个问题:当要给字符串创建前缀索引时,有什么方法能够确定我应该使用多长的前缀呢? 实际上,我们在建立索引时关注的是区分度,区分度越高越好。 因为区分度越高,意味着重复的键值越少。 因此,我们可以通过统计索引上有 ...
分类:
其他好文 时间:
2020-01-31 20:50:42
阅读次数:
61
普通索引创建 创建普通索引,即不添加 UNIQUE、FULLTEXT 等任何参数。 【例】创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下: 此时在id字段上建立的普通索引名字为id,在id字段建立的,索引方法为BTREE,索引类型为normal 创建唯一索引 创 ...
分类:
数据库 时间:
2020-01-30 19:20:07
阅读次数:
360
密集索引稀疏索引的区别 密集索引文件中的每个搜索码值都对应一个索引值 稀疏索引文件只为索引码的某些值建立索引项 MySQL的InnoDB 若一个主键被定义,该主键则作为密集索引 若没有主键定义,该表的第一个唯一非空索引则作为密集索引 若不满足以上条件,innodb内部会生成一个隐藏主键(密集索引) ...
分类:
其他好文 时间:
2020-01-25 19:32:36
阅读次数:
74
索引类型:Unique(唯一索引,一般为主键),Normal(一般索引,普通字段,可做组合索引),索引方法:BTREE 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用 ...
分类:
数据库 时间:
2020-01-24 00:33:37
阅读次数:
126
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在 ...
分类:
数据库 时间:
2020-01-20 00:29:45
阅读次数:
89
通常情况下,建立索引是加快查询速度的有效手段。但索引不是万能的,靠索 引并不能实现对所有数据的快速存取。事实上,如果索引策略和数据检索需求严重不符的话,建立索引反而会降低查询性能。因此在实际使用当中,应该充分考虑到 索引的开销,包括磁盘空间的开销及处理开销(如资源竞争和加锁)。例如,如果数据频繁的更 ...
分类:
数据库 时间:
2020-01-19 18:54:44
阅读次数:
92
思路 :先收集索引的信息,查看已有索引使用情况,删除不使用的索引,合并可以合并的索引,然后再重新收集信息,查看缺失的索引,最后建立索引。 第一步:收集索引信息 SELECT o.name AS tableName, i.index_id , i.name AS indexName, i.type A ...
分类:
其他好文 时间:
2020-01-17 11:44:15
阅读次数:
56
接下来记录一下HBase存储原理相关的知识,理解尚浅,后续再补充。 索引 hbase中没有索引,但是mysql有,区别在于mysql是行级存储,hbase是列级存储,索引对行级存储有意义,对于列级存储意义不大。 如下图所示,不管是mysql还是hbase,最终数据都会落地成文件,当给行级存储建立索引 ...
分类:
其他好文 时间:
2020-01-16 01:15:32
阅读次数:
86
查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率。最近在对项目中的一些sql进行优化,总结整理了一些方法。 1、在表中建立索引,优先考虑where、group by使用到的字段。 2、尽量避免使用select *,返回无用的字段会降 ...
分类:
数据库 时间:
2020-01-10 10:51:19
阅读次数:
75