MySQL 索引
简单来讲,索引相当于字典中的目录,能更快的定位到要查找的内容。
如果没有索引,当你执行一个查询的时候,MySQL 会逐行的扫描全表,并返回符合条件的行。如果一个表的数据量很小,这并没有什么问题。如果这个表含有很多了行,例如一百万行或者更多,全表扫描将是一个很慢的过程。而使用索引可以大大加快 MySQL 查询的速度。
您可以建立多个索引,就像在一个字典中,既可以根据字母建立索引,也可以根据词语的长度建立索引。在 MySQL 中,您可以根据一个列建立索引,也可以根据多个列建立索引。
索引的实现可以采用不同的数据结构,比如 B-Tree,哈希等。索引中存放一些数据和指向数据实际物理地址的信息,因此索引需要一定的存储空间。
索引会降低插入、修改和删除数据的速度,因为这些操作都会引起索引的修改。比如插入数据时,需要对新数据建立索引。
在这里,您可以通过一系列的教程学习 MySQL 索引,包括创建索引、删除索引、列出表的所有索引以及在 MySQL 中使用索引的优缺点。
-
MySQL CREATE INDEX
索引可以提高对表的数据检索速度。在 MySQL 数据库中,您可以使用CREATE INDEX
语句向表添加索引。 -
MySQL DROP INDEX
在 MySQL 数据库中,您可以使用DROP INDEX
从表中删除已有的索引。 -
MySQL SHOW INDEXES
在 MySQL 中,您可以使用SHOW INDEXES
命令从表中查询索引信息。 -
MySQL UNIQUE INDEX
MySQL 唯一索引是一种特殊的索引,它不但可以加快从表中检索数据的速度,还能防止在指定的一个或多个列中出现重复值。 -
MySQL USE INDEX
本文讲述如何在 MySQL 中使用USE INDEX
建议查询优化器使用指定的命名索引。 -
MySQL FORCE INDEX
本文讲述如何在 MySQL 中强制查询优化器使用指定的命名索引。 -
MySQL 复合索引
本文讲述 MySQL 中的复合索引,即建立在多个列之上的索引。 -
MySQL 聚集索引
本文讲述 MySQL 中的聚集索引以及如何在 InnoDB 表中管理聚集索引。 -
MySQL 索引基数
本文讨论了 MySQL 的索引基数以及如何使用SHOW INDEXES
命令查看索引基数。 -
MySQL 隐藏索引
本文讨论了 MySQL 的隐藏索引以及隐藏索引的用法。 -
MySQL 字符串前缀索引
本文讨论了在 MySQL 中如何为字符串列创建前缀索引。 -
MySQL 索引顺序
本文讨论了在 MySQL 中如何使用升序和降序索引来提高查询的性能。