摘要: 在MySQL中,大多数索引(如 PRIMARY KEY,UNIQUE,INDEX和FULLTEXT)都是在BTREE中存储,但使用memory引擎可以选择BTREE索引或者HASH索引,两种不同类型的索引各自有其不同的使用范围。 B树索引具有范围查找和前缀查找的能力,对于有N节点的B树,检索一条记录 阅读全文
posted @ 2020-09-12 16:32 Achilles_Heel 阅读(560) 评论(0) 推荐(0) 编辑
摘要: 索引失效的几种情况 1.索引不存储null值 更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用is null条件时,因为索引上根本 没Null值,不能利用到索引,只能全表扫描。 为什么索引列不能存Null值? 将索引列值进行建树,其中必然涉及 阅读全文
posted @ 2020-09-12 15:58 Achilles_Heel 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1、聚集索引 表数据按照索引的顺序来存储的,也就是说索引项的顺序与表中记录的物理顺序一致。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。 在一张表上最多只能创建一个聚集索引,因为真实数据的物理顺序只能有一种。 从物理文件也可以看出 InnoDB(聚集索引)的数据文件只有数据结构 阅读全文
posted @ 2020-09-12 15:54 Achilles_Heel 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、MySQL索引的类型 1. 普通索引 这是最基本的索引,它没有任何限制,MyIASM中默认的BTREE类型的索引,也是我们大多数情况下用到的索引。 创建索引 直接创建索引 CREATE INDEX index_name ON table(column(length)) 修改表结构的方式添加索引 阅读全文
posted @ 2020-09-12 15:35 Achilles_Heel 阅读(226) 评论(0) 推荐(0) 编辑