Loading

摘要: 索引可以让查询锁定更少的行 如果你的查询从不访问那些不需要的行,那么就会锁定更少的行 InnoDB只有访问行的时候才会对其加锁,索引能够减少InnoDB访问的行数,从而减少锁的数量 只有在InnoDB在存储引擎层能够过滤掉所有不需要的行时才有效,如果索引无法过滤掉无效的行 在InnoDB检索到数据返 阅读全文
posted @ 2021-10-25 15:53 BigBender 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 重复索引 在相同的列上按照相同的顺序创建相同类型的索引 通常除了创建不用类型索引来满足不同的查询需求,没有理由这样做 如果索引类型不同,并不算是重复索引 冗余索引 如果创建了索引(A,B),再创建索引(A)就是冗余索引 索引(A,B)可以当作索引(A)来用,这种冗余是针对B-tree索引来说的 大部 阅读全文
posted @ 2021-10-25 14:10 BigBender 阅读(248) 评论(0) 推荐(0) 编辑
摘要: MyISAM数据分布非常简单,按照数据插入顺序存储在磁盘上 表 MyISAM数据分布 数据分布 InnoDB数据分布 在InnoDB中,聚簇索引就是表,不像MyISAM那样需要独立的行存储 聚簇索引每一个叶子结点包含了主键值、事务ID、用于事务和MVCC的回滚还真以及所有剩余列 InnoDB二级索引 阅读全文
posted @ 2021-10-25 14:03 BigBender 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 一个索引包含所有需要查询的字段,称之为"覆盖索引" 覆盖索引,查询只需要扫描索引而无须回表,优点 索引条目远小于数据行大小,如果只需要读取索引,MySQL会极大减少数据访问量 这对缓存负载非常重要,这种情况下响应时间大部分花在数据拷贝上 对IO密集型应用也有帮助,索引更容易全部放入内存中 索引按照列 阅读全文
posted @ 2021-10-25 14:03 BigBender 阅读(668) 评论(0) 推荐(0) 编辑
摘要: InnoDB的聚簇索引在统一结构中保存了B-Tree索引和数据行 叶子页包含行全部数据,节点页只包含了索引列 聚簇索引的优点 可以把相关数据保存在一起,减少磁盘IO 数据访问更快,聚簇索引将索引和数据保存在同一个B-Tree中,在聚簇索引中获取数据更快 使用覆盖索引扫描的查询可以直接使用页节点中的主 阅读全文
posted @ 2021-10-25 14:03 BigBender 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 当不需要考虑排序和分组时,将选择性最高的列放在前面通常是很好的 只用于优化where条件的查找,能够最快得过滤出需要的行,对于在where子句中只使用了索引部分前缀列查询选择性更高 创建索引需要怎么创建,需要现确定哪个列选择性更高 经验法则考虑的是全局基数和选择性 所以选择将customer_id索 阅读全文
posted @ 2021-10-25 10:29 BigBender 阅读(237) 评论(0) 推荐(0) 编辑
摘要: Index merge 一定程度上可以使用表上多个单列索引定位指定的行 在MySQL5.0和更新版本中,查询能够同时使用这两个单列索引进行扫描并对结果进行合并 OR条件的union AND条件的intersection 前两种情况的union和intersection 索引合并有时候是优化结果,但实 阅读全文
posted @ 2021-10-25 10:29 BigBender 阅读(251) 评论(0) 推荐(0) 编辑