MySQL中INDEX、PRIMARY、UNIQUE、FULLTEXT的区别

MySQL中INDEX、PRIMARY、UNIQUE、FULLTEXT的区别

MySQL中的索引是优化查询的一种技术。可以避免全表扫描而快速查找到数据。MySQL中常用的索引类型有四种 – INDEX、PRIMARY、UNIQUE和FULLTEXT,下面我们来逐一进行介绍。

阅读更多:MySQL 教程

INDEX

INDEX是最基本的索引类型,不做任何限制。当我们想在查询中查找数据时,如果没有使用任何索引,那么MySQL会进行全表扫描,这种查询方法非常费时。如果我们在表中加入一个简单的索引,那么查询时MySQL就会使用这个索引,快速地找到想要的数据。

例如,我们给一张students表增加一个名为score的INDEX索引:

CREATE INDEX idx_score ON students (score);

这样我们就可以快速的查到想要的数据,无需进行全表扫描。

PRIMARY

PRIMARY是指定一列作为主键,一个表中只能有一个主键。主键保证表中每一行数据的唯一性,并且快速地查找每一行的数据。常见的主键类型有自增ID、GUID或者Date、Time组成的复合主键等。例如,我们在students表中指定id列为主键:

ALTER TABLE students ADD PRIMARY KEY(id);

这样我们就可以通过id来快速地查找每个学生的信息。

UNIQUE

UNIQUE是指定某些列不允许重复值,和主键的概念类似。跟主键的区别在于,一个表中可以有多个UNIQUE索引。例如,我们在students表中指定email列为UNIQUE:

ALTER TABLE students ADD UNIQUE INDEX idx_email(email);

这样我们就保证了每个学生的邮箱地址是唯一的。

FULLTEXT

FULLTEXT索引是用于搜索文本数据的。它的查询方式与普通索引有所不同。FULLTEXT索引会对表中的每个单词进行索引,并且能够通过关键字进行快速搜索。例如,我们给一张articles表的title和content列增加FULLTEXT索引:

ALTER TABLE articles ADD FULLTEXT(title,content);

这样我们就可以用MATCH AGAINST语句快速地搜索到我们需要的文章:

SELECT * FROM articles WHERE MATCH(title, content) AGAINST('MySQL Differences' IN BOOLEAN MODE);

总结

MySQL中的索引是优化查询的一种技术,INDEX、PRIMARY、UNIQUE、FULLTEXT是常见的四种索引类型。使用和设计上述索引,可以使我们的MySQL查询更加快速高效。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程