MySQL 索引类型有哪些?

1. 普通索引(Normal Index)

  • 特点: 最常见的索引类型,可以加速数据的查询。
  • 创建方法:
CREATE INDEX index_name ON table_name (column_name);

2. 唯一索引(Unique Index)

  • 特点: 除了加速查询外,还要求索引列中的每个值都是唯一的,不能出现重复值。

创建方法:

CREATE UNIQUE INDEX index_name ON table_name (column_name);

3. 主键索引(Primary Key Index)

  • 特点: 一种特殊的唯一索引,不允许有空值(NULL)。每个表只能有一个主键。

创建方法:

CREATE TABLE table_name (
    column_name datatype PRIMARY KEY
);

4. 全文索引(Fulltext Index)

  • 特点: 主要用于全文搜索,可以加速对文本字段的关键词查询。适用于 CHAR、VARCHAR 和 TEXT 类型的列。

  • 注意: 仅适用于 MyISAM 和 InnoDB 存储引擎(MySQL 5.6 及更高版本的 InnoDB 支持全文索引)。

  • 工作原理: 将文本字段拆分成单词,然后对每个单词建立索引。查询时,通过匹配查询词与倒排索引中的单词来找到相关记录。例如,SELECT * FROM table WHERE MATCH(column) AGAINST(‘keyword’)。

创建方法:

CREATE FULLTEXT INDEX index_name ON table_name (column_name);

5. 空间索引(Spatial Index)

  • 特点: 用于加速地理空间数据的查询,适用于 MyISAM 存储引擎和支持 GIS 数据类型的表。

创建方法:

CREATE SPATIAL INDEX index_name ON table_name (spatial_column);

6. 复合索引(Composite Index)

  • 特点: 在多个列上创建的索引,可以加速涉及这些列的查询。适用于需要同时查询多列数据的情况。

创建方法:

CREATE INDEX index_name ON table_name (column1, column2);

7. 唯一复合索引(Unique Composite Index)

  • 特点: 类似于复合索引,但要求索引的组合值必须唯一。

创建方法:

CREATE UNIQUE INDEX index_name ON table_name (column1, column2);

8. 哈希索引(Hash Index)

  • 特点: 基于哈希表实现的索引,查询效率高,但不支持范围查询。适用于 MEMORY 引擎。

创建方法:

CREATE TABLE table_name (
    column_name datatype,
    INDEX USING HASH (column_name)
) ENGINE=MEMORY;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值