
数据库-索引
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
【开发规约】MySQL规范
规范在整个后端执行也有大半年的时间,对于整个团队在开发阶段就减少不恰当的建表语句、错误 SQL、错误的索引有积极的意义,故分享出来给大家参考。下边分为建表规约、SQL 规约、索引规约三个部分,每部分的每一条都有强制、建议两个级别,大家在参考时,根据自己公司的情况来权衡。建表规约【强制】:①存储引擎必须使用 InnoDB解读:InnoDB 支持事物、行级锁、并发性能更好,CPU 及内存缓存页优化使得资源利用率更高。【强制】:②每张表必须设置一个主键 ID,且这个主键 ID 使用自增主键(在转载 2020-11-15 16:15:06 · 730 阅读 · 2 评论 -
【重要】MySQL中order by语句的实现原理以及优化手段
相信很多人在面试过程中,总被问到有没有 SQL 调优经验,对于工作经验年限较少的求职者,通常都是在面试之前从网上百度一些答案,提前背熟,然后面试的时候直接将提前背好的答案说出来。笔者作为一名菜鸟,在刚满一年工作经验的时候,出去面试,就是这么干的。记得去某家公司面试的时候,被面试官问到 order by 在排序的时候执行较慢,这个时候该如何优化?我当初想都没想,就回答说给 order by 子句中的...转载 2020-04-30 18:38:43 · 1042 阅读 · 0 评论 -
mysql 多列索引对应的b+tree结构
一:表数据说明有如下的一张表:我们对firstName,lastName,birthday这三列建立一个复合索引,即key(firstName,lastName,birthday);二:复合索引记录排序规则我们知道索引结构中的数据都是按照顺序排列的,上面的索引首先会按照firstName排序即按照字母顺序排列,firstName相同的情况下按照lastName排序,lastName相同...转载 2019-11-26 18:16:17 · 1435 阅读 · 0 评论 -
MySQL索引对NULL值的处理
# 索引不会包含有NULL值的列只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。在很多库表设计规范、某某军规的文章中,是不是经常会看到类似这样的内容。小编也经常看到这样的内容,并且在编写规范的时候,准备也把这一条加进去。但在按部就班之余,小编抽空验证了一下,发现...转载 2020-03-09 18:34:53 · 998 阅读 · 0 评论 -
位图索引:原理(BitMap index)
http://www.cnblogs.com/LBSer/p/3322630.html位图(BitMap)索引 前段时间听同事分享,偶尔讲起Oracle数据库的位图索引,顿时大感兴趣。说来惭愧,在这之前对位图索引一无所知,因此趁此机会写篇博文介绍下位图索引。1. 案例 有张表名为table的表,由三列组成,分别是姓名、性别和婚姻状况,其中性别只有男和女两项,婚姻状况由已婚、未婚...转载 2019-02-26 18:46:48 · 1606 阅读 · 1 评论 -
MySQL和B树的那些事
一、零铺垫 在介绍B树之前,先来看另一棵神奇的树——二叉排序树(Binary Sort Tree),首先它是一棵树,“二叉”这个描述已经很明显了,就是树上的一根树枝开两个叉,于是递归下来就是二叉树了(下图所示),而这棵树上的节点是已经排好序的,具体的排序规则如下:若左子树不空,则左子树上所有节点的值均小于它的根节点的值 若右子树不空,则右子树上所有节点的值均大于它的根节点的值 它...转载 2019-03-23 19:43:52 · 613 阅读 · 0 评论