MySQL 索引

简单来讲,索引相当于字典中的目录,能更快的定位到要查找的内容。

如果没有索引,当你执行一个查询的时候,MySQL 会逐行的扫描全表,并返回符合条件的行。如果一个表的数据量很小,这并没有什么问题。如果这个表含有很多了行,例如一百万行或者更多,全表扫描将是一个很慢的过程。而使用索引可以大大加快 MySQL 查询的速度。

您可以建立多个索引,就像在一个字典中,既可以根据字母建立索引,也可以根据词语的长度建立索引。在 MySQL 中,您可以根据一个列建立索引,也可以根据多个列建立索引。

索引的实现可以采用不同的数据结构,比如 B-Tree,哈希等。索引中存放一些数据和指向数据实际物理地址的信息,因此索引需要一定的存储空间。

索引会降低插入、修改和删除数据的速度,因为这些操作都会引起索引的修改。比如插入数据时,需要对新数据建立索引。

在这里,您可以通过一系列的教程学习 MySQL 索引,包括创建索引删除索引列出表的所有索引以及在 MySQL 中使用索引的优缺点。

  1. MySQL CREATE INDEX

    索引可以提高对表的数据检索速度。在 MySQL 数据库中,您可以使用 CREATE INDEX 语句向表添加索引。
  2. MySQL DROP INDEX

    在 MySQL 数据库中,您可以使用 DROP INDEX 从表中删除已有的索引。
  3. MySQL SHOW INDEXES

    在 MySQL 中,您可以使用 SHOW INDEXES 命令从表中查询索引信息。
  4. MySQL UNIQUE INDEX

    MySQL 唯一索引是一种特殊的索引,它不但可以加快从表中检索数据的速度,还能防止在指定的一个或多个列中出现重复值。
  5. MySQL USE INDEX

    本文讲述如何在 MySQL 中使用 USE INDEX 建议查询优化器使用指定的命名索引。
  6. MySQL FORCE INDEX

    本文讲述如何在 MySQL 中强制查询优化器使用指定的命名索引。
  7. MySQL 复合索引

    本文讲述 MySQL 中的复合索引,即建立在多个列之上的索引。
  8. MySQL 聚集索引

    本文讲述 MySQL 中的聚集索引以及如何在 InnoDB 表中管理聚集索引。
  9. MySQL 索引基数

    本文讨论了 MySQL 的索引基数以及如何使用 SHOW INDEXES 命令查看索引基数。
  10. MySQL 隐藏索引

    本文讨论了 MySQL 的隐藏索引以及隐藏索引的用法。
  11. MySQL 字符串前缀索引

    本文讨论了在 MySQL 中如何为字符串列创建前缀索引。
  12. MySQL 索引顺序

    本文讨论了在 MySQL 中如何使用升序和降序索引来提高查询的性能。