摘要:
存储引擎Storage engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。 常见存储引擎: InnoDB:支持ACID事务,提供行级锁和外键的约束。处理大数据容量 MyISAM:不提供事务支持,不支持行级锁和外键 memory:数据存在内存 InnoDB与MyIS 阅读全文
摘要:
第一范式:每个列不可拆分 第二范式:在第一范式上,非主键列完全依赖主键,而不能依赖主键一部分 第三范式:在第二范式上,非主键列只能依赖主键,不依赖其他非主键 设计数据库结构,尽量遵守3范式。考虑性能等问题,可以不严格遵守。 阅读全文
摘要:
我们以MySQL为例,来说明btree索引算法和hash索引算法。首先,我们先了解一下索引,以及btree和hash是什么。 索引原理 索引用来快速寻找特定的数据值,如果没有索引,查询时需要遍历整张表。原理大概是这样: 把创建了索引的列内容排序 排序结果生成倒排表 在倒排表内容上拼上数据地址 在查询 阅读全文
摘要:
一、聚簇索引 数据与索引放在一起,找到索引就找到数据 二、非聚簇索引 数据与索引存储分开 这里说的数据与索引一起还是分开指的是在btree叶子节点是否只存在索引。 使用场景 动作描述 使用聚簇索引 使用非聚簇索引 列经常被分组排序 应 应返回某范围内的数据 应 不应一个或极少不同值 不应 不应小数目 阅读全文
摘要:
组合索引,就是多个列组成一个索引。 划重点:最左前缀匹配原则是组合索引最重要的一个原则。 什么意思呢?我们举例说明,a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d 阅读全文