MySQL支持多种类型的索引。在使用时可以根据业务需求选择合适的索引类型。
普通索引
就是没有特殊限制的索引。
示例:
create index 'index_name_1' on table1 (column1);
唯一索引
唯一索引所使用的列(Column)值必须唯一,可以是空值,而且是允许多个空值。
如果索引引用了多列,则其组合的列值必须唯一。
示例:
create unique index 'index_name_1' on table1 (column1);
主键索引
一种特殊的唯一索引,不允许列值为空值。通常在创建表时就创建主键索引。
示例:
create table table1 ( id int not null, ... primary key (id) );
多列索引
也叫组合索引。就是指索引由多个列组成。
示例:
create index 'index_name_1' on table1 (column1, column2, column3);
多列索引的使用遵循 最左前缀 原则。即,靠左边的索引会被优先使用。
在创建组合索引时,应将使用最频繁的列放在前面,以提高搜索效率。
上述示例相当于创建了三个索引:column1 的单列索引、(column1, column2) 的组合索引、(column1, column2, column3) 的组合索引。
如果未指定column1,那么这些索引都不会被使用。
where 子句中各这些列无需按照此顺序排布,MySQL会自动检测调整。
空间索引(Spatial Index)
用于对 geometry 之类表示空间位置类型字段的索引。
全文索引(Fulltext Index)
用于对大数据量的文本字段进行索引,搜索那些包含目标文本的记录。非常耗时,耗存储空间。
示例:
create spatial index index_1 on table1 (column_g);
索引使用注意事项
可以使用 MySQL 的 Explain 表达式查看SQL查询语句的效率。
示例:
explain select * from table1 where column1 like 'a%';
以下情况不会使用索引:
-
like 值中以 % 开头。
不使用索引:like '%abc'
使用索引:like 'abc%' -
使用了 函数 或 表达式。
不使用索引:left(column1, 3) = 'abc'
- !=、or 、not in、not like 这些关键字不会使用索引
- MySQL查询只使用一次个索引,如果where子句使用了索引,后续的order by不会使用索引。
相关推荐
MySQL 索引类型大汇总 MySQL 索引类型是数据库性能优化的关键所在。索引可以大幅度提高查询速度,提高数据库的高效运行。在 MySQL 中,索引可以分为单列索引和组合索引两种。 1. 普通索引 普通索引是最基本的索引...
本篇文章主要概述了七种MySQL索引类型,帮助理解如何有效地利用索引来提升查询效率。 首先,**普通索引(INDEX)**是最基础的索引类型,对字段没有特殊限制。创建普通索引可以通过`CREATE INDEX`、`ALTER TABLE`或...
以下是针对标题和描述中提到的MySQL索引类型的详细说明: 1. **普通索引**(Index): 普通索引是最基础的索引类型,没有特定的限制。它可以在表的任何列上创建,允许该列的值重复。创建普通索引的方法包括在创建...
对 myslq 基本索引类型的概述,以及在不同中情况下的运用。
主要的索引类型包括普通索引(Normal)、唯一索引(Unique)和全文索引(Full Text),每种类型都有其特定的用途和优势。 1. 普通索引(Normal):这是最基本的索引类型,没有任何限制。在MyISAM存储引擎中,默认的...
#### 二、MySQL索引类型详解 ##### 1. B-Tree索引 - **定义**:B-Tree(平衡树)是最常见的索引类型,在大多数情况下使用的索引都属于此类。B-Tree能够支持范围查找、前缀查找以及等值查找等多种操作。 - **特点**...
在本文中,我们将深入探讨几种常见的MySQL索引类型,包括普通索引、唯一索引、主键索引和组合索引,并提供创建和使用这些索引的技巧以及需要注意的事项。 1. 普通索引(INDEX): 普通索引是最基础的索引类型,没有...
一、MySQL索引类型与原理 1. B+树(B+ Tree):MySQL中最常见的索引类型,尤其适用于主键索引和唯一索引。B+树是一种自平衡的树,所有数据都在叶子节点,非叶子节点只存储索引,这样可以实现快速查找。每个节点可...
### MySQL索引最佳实践 #### 理解索引的重要性 在数据库管理中,索引是一种数据结构,用于提高查询速度。它对于开发者和数据库管理员(DBA)来说至关重要。索引选择不当可能会导致生产环境中的诸多问题。尽管索引...
MySQL数据库中的索引是提升查询性能...总的来说,理解并合理运用MySQL的索引类型和策略是提高数据库性能的关键。根据业务需求和数据特点选择合适的索引类型,并谨慎考虑索引的创建,能够显著改善数据库系统的整体效能。
本文将详细介绍几种主要的MySQL索引类型及其应用。 首先,普通索引是最基本的索引类型,没有特殊限制。可以通过`CREATE INDEX`、`ALTER TABLE`或在创建表时直接定义来创建。例如,为`username`字段创建普通索引,...
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能...
二、MySQL索引的创建与删除 1. 创建索引:可以使用CREATE INDEX语句或在CREATE TABLE语句中指定INDEX关键字来创建索引。 例如:CREATE INDEX index_name ON table_name (column_name); 或:CREATE TABLE table_name...
InnoDB支持多种索引类型,包括主键索引、唯一索引、普通索引等。其中,主键索引是最常见的索引类型。 ##### 2.1 主键索引 主键索引是基于主键列构建的B+树索引,其中每个叶子节点存储完整的行记录。主键索引提供了...
总之,MySQL索引优化是一项涉及广泛的知识,包括但不限于索引类型选择、索引维护、存储过程和触发器的合理运用。通过深入学习和实践,我们可以有效地提升数据库的运行效率,确保系统的稳定和快速响应。这个课件...
│ │ 3_MySQL索引类型介绍.mp4 │ │ 4_MySQL索引底层结构和执行计划.mp4 │ │ 5_MySQL索引优化原则.mp4 │ │ 6_MySQL运维常见错误part1.mp4 │ │ 7_MySQL运维常见错误part2.mp4 │ │ ERROR1040_1917970.1.pdf ...
1. **普通索引**:最简单的索引类型,只包含单个列。 2. **唯一索引**:确保索引列中的值是唯一的,但允许值为空。 3. **复合索引**:包含多个列的索引,可用于同时基于多个字段进行查询。 4. **聚簇索引(聚集索引...