mysql系列:全网最全索引类型汇总
在MySQL中,索引是一种可以提高数据检索效率的数据结构。MySQL提供了多种索引类型,包括主键索引、唯一索引、全文索引、组合索引、前缀索引、空间索引等。
- 主键索引(Primary Key):唯一标识表中每行数据的索引,一个表只能有一个主键。
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
PRIMARY KEY (id)
);
- 唯一索引(Unique):保证列的值在整个表中是唯一的索引。
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
email VARCHAR(255),
UNIQUE INDEX uniq_idx_email (email)
);
- 全文索引(FULLTEXT):用于全文检索,仅适用于MyISAM和InnoDB引擎(MySQL 5.6以上版本支持InnoDB)。
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
content TEXT,
FULLTEXT ft_idx_content (content)
);
- 组合索引:将多个列作为一个索引。
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
last_name VARCHAR(50),
first_name VARCHAR(50),
INDEX idx_name (last_name, first_name)
);
- 前缀索引:对于长文本列,可以创建只索引文本的前几个字符。
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
content VARCHAR(255),
INDEX prefix_idx (content(10))
);
- 空间索引(SPATIAL):针对空间数据类型的索引,如GEOMETRY。
CREATE TABLE my_table (
id INT AUTO_INCREMENT,
location GEOMETRY,
SPATIAL SPATIAL_idx (location)
);
以上代码展示了如何在创建表时定义各种索引,也可以在现有表上使用CREATE INDEX
、ALTER TABLE
或CREATE TABLE
语句来添加或修改索引。
评论已关闭