MysqL 索引详细解读
发布时间:2023-09-06 12:56:26 所属栏目:MySql教程 来源:
导读:索引在 MysqL 中也叫“键(Key)”,是存储引擎用于快速查找记录的一种数据结构,这也是索引的基本功能。
MysqL 索引的工作原理,类似一本书的目录,如果要在一本书中找到特定的知识点,先通过目录找到
MysqL 索引的工作原理,类似一本书的目录,如果要在一本书中找到特定的知识点,先通过目录找到
索引在 MysqL 中也叫“键(Key)”,是存储引擎用于快速查找记录的一种数据结构,这也是索引的基本功能。 MysqL 索引的工作原理,类似一本书的目录,如果要在一本书中找到特定的知识点,先通过目录找到对应的页码。在 MysqL 中,数据存储引擎用上面类似的方法同样是使用索引,先在相关联的索引找到对应值,再根据相关联的索引记录找到另外一个对应的数据行。简单总结,索引就是为了提高数据查询的效率,跟一本书的目录一样。 以下查询假设字段 c2 上建有索引,则存储引擎将通过索引找到 c2 等于测试01 的行。也就是说,存储引擎先在索引按值进行查找,再返回所有包含该值的数据行。 InnoDB 和 MyISAM 存储引擎可以创建 B-Tree 索引,单列或多列都可以创建索引; Memory 存储引擎可以创建哈希索引,同时也支持 B-Tree 索引; 从 MysqL5.7 开始,InnoDB 和 MyISAM 存储引擎都可以支持空间类型索引; InnoDB 和 MyISAM 存储可以支持全文索引(FULLTEXT),该索引可以用于全文搜索,仅限于CHAR、VARCHAR、TEXT 列。 索引优点 索引最大的作用是快速查找数据,除此之外,索引还有其他的附加作用。 B-Tree 是最常见的索引,按照顺序存储数据,它可以用来做 order by 和 group by 操作。因为 B-Tree 是有序的,将相关的值都存储在一起。因为索引存储了实际的列值,某些查询仅通过索引就可以完成查询,如覆盖查询。 总的来说,索引三个优点如下: 索引可以大大减少 MysqL 需要扫描的数据量; 索引可以帮助 MysqL 避免排序和临时表; 索引可以将随机 IO 变为顺序 IO。 但是,索引是最好的解决方案吗?任何事物都是有两面性的,索引同样如此。 索引并不总是最好的优化工具 对于非常小的表,大多数情况,全表扫描会更高效; 对于中大型表,索引就非常有效; 对于特大型表,建索引和用索引的代价是日益增长,这时候可能需要和其他技术结合起来,如分区表。 总的来说,只有当使用索引利大于弊时,索引才是最好的优化工具。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |