在 MySQL 中,索引是一种用于提高查询效率的数据结构。它可以帮助数据库系统快速定位和访问表中的数据。索引可以基于一个或多个列创建,并且可以应用于表中的任何列。
不用加内存、不用改程序、不用调sql、只要执行正确的 create index ,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的 IO。
MySQL 支持多种类型的索引,包括下面几种:
Primary Key Index):主键索引是一种唯一性索引,用于标识表中的每一行。每个表只能有一个主键索引,它可以跨多个列定义。MySQL 会自动添加一个自增列。Unique Index):唯一索引确保索引列中的值是唯一的,但允许包含空值。一个表可以有多个唯一索引。Normal Index):普通索引是最基本的索引类型,它没有唯一性或主键的限制。一个表可以有多个普通索引。Full-Text Index):全文索引用于在大文本数据中进行全文搜索。它可以提供更高级的搜索功能,如关键字搜索和排序。mongodb,效率更高!Composite Index):组合索引是基于多个列创建的索引。它可以提高多列查询的性能,但只有在查询中使用了索引的第一个列时才能发挥作用。PRIMARY KEY,则 InnoDB 使用第一个 UNIQUE 和 NOT NULL 的列作为聚集索 引。PRIMARY KEY 或合适的 UNIQUE 索引,InnoDB 会为新插入的行生成一个行号并用 6 字节的 ROW_ID 字段记录,ROW_ID 单调递增,并使用 ROW_ID 做为索引。select 语句使用了普通索引且查询列表中的列刚好是创建普通索引时的所有或部分列,这时就可以直接返回数据,而不用回表查询,这样的现象称为索引覆盖
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。