博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql--索引
阅读量:2350 次
发布时间:2019-05-10

本文共 1306 字,大约阅读时间需要 4 分钟。

索引的好处:

1 可以帮助服务器避免排序。

B-Tree索引在如下的情况中会生效

测试表结构:

CREATE TABLE `people` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `last_name` varchar(255) DEFAULT NULL,  `first_name` varchar(255) DEFAULT NULL,  `nick_name` varchar(255) DEFAULT NULL,  `createtime` datetime DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `last_name_first_name_createtime_index` (`last_name`,`first_name`,`createtime`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

1 全值匹配–联合索引在查询中均用到了,

SELECT * FROM peopleWHERE last_name="tang"AND first_name="xi"AND createtime='2019-01-09 00:00:00'

2 匹配最左前缀–使用组合索引的第一列

EXPLAIN SELECT * FROM peopleWHERE last_name="tang"

3 匹配列前缀–只匹配某一列的开头部分,

EXPLAIN SELECT * FROM peopleWHERE last_name="t%"

4 匹配范围值

EXPLAIN SELECT * FROM peopleWHERE last_name>"a"AND last_name<"c"

5 精确匹配某一列并范围匹配另外一列

EXPLAIN SELECT * FROM peopleWHERE last_name>"b"AND createtime>'2019-01-09 00:00:00'AND createtime<'2020-01-09 00:00:00'

多列索引:

当服务器出现and查询时,有必要创建组合索引。
一般将选择性高的放在最左边,同时考虑部分列是否能筛除掉大部分数据,则也可以考虑将该列放在最左边。

T-Tree的一些规则

1 如果不是按照索引定义的顺序来查询,则无法使用到索引。
2 不能跳过索引中间的某些列。
3 如果某个列用到范围查询,则其右边都无法用到索引进行优化查找。

Hash索引:

哈希索引,将会把指定列的数据通过hash算法计算出一个哈希码,将hash码和数据地址存在hash索引中。

hash索引的优缺点

1 hash索引容易出现hash碰撞,如果出现hash碰撞, 则会以列表的形式存储多行记录的地址。
2 hash索引的值不是按照索引值排序的,无法用于排序(疑问点)。
3 hash索引不支持匹配查询,因为hash索引总是使用列的值来进行计算hash值,所以hash只支持比较查询

摘自《高性能Mysql》

转载地址:http://muhvb.baihongyu.com/

你可能感兴趣的文章
国内资深敏捷教练姜信宝:敏捷学习指南 带你从入门到深入
查看>>
360奇舞团钟恒:选用Vue.js进行组件化开发,我们遇到了哪些坑?
查看>>
QQ音乐高级工程师袁聪:大胆尝试,展现不一样的React Native
查看>>
【SDCC 2016】高吞吐数据库架构专题:腾讯、百度、新浪、网易等企业分布式数据库最佳优化实践大亮相...
查看>>
流动的数据——使用 RxJS 构造复杂单页应用的数据逻辑
查看>>
全球HTTPS时代已来,你跟上了吗?
查看>>
一个治愈JavaScript 疲劳的学习计划
查看>>
我在阅读NodeJS文档中读出的19个套路
查看>>
CSS专家、阿里巴巴前端技术专家大漠:纵览布局演变史
查看>>
JavaScript易错知识点整理
查看>>
打造“微信小程序”组件化开发框架
查看>>
Vue中你不知道但却很实用的黑科技
查看>>
CSS Selectors Level 4新特性全面解析
查看>>
解读微信终端开源背后的故事
查看>>
来自普元移动团队的微信小程序第一手实践分享
查看>>
微信小程序正式发布!爱范儿推出国内首家小程序商店
查看>>
白鹭引擎 4.0 发布 让重度H5游戏研发更简单
查看>>
首个小程序服务联盟成立 挖掘小程序所蕴含的商业机会
查看>>
巴克云创始人、原迅雷首席工程师刘智聪:小程序后台开发关键技术点解析
查看>>
阿拉丁微信小程序创新论坛“上海站”成功举办 携多位业界专家探讨小程序创投机会...
查看>>