在数据库优化中,创建索引是提高查询效率的一种重要手段,也是许多程序员的头疼问题。如果你也有同样的困扰,那么就跟我一起来看看如何创建更合适的MySQL索引吧!
- MySQL索引的分类
在开始学习如何创建MySQL索引之前,我们先来了解一下常见的索引类型:
(1)普通索引:没有任何限制,是最基本的索引。
(2)唯一索引:列值必须唯一,允许为null。
(3)主键索引:一张表只有一个主键,不允许为null。
(4)联合索引:在多个字段上创建索引,查询效率更高。
(5)全文索引:用来匹配字符串文本中关键字。
二 哪些字段适合创建索引?
- 频繁查询的字段适合创建索引。对于一张表的字段来说,有冷热之分,很明显那些频繁使用的字段更适合为它创建索引。例如,对于用户表来说,手机号和用户名可能会被频繁查询,因此适合创建索引。
代码示例:
ALTER TABLE `user` ADD INDEX idx_phone (phone);
ALTER TABLE `user` ADD INDEX idx_username (username);
- 在where和on条件出现的字段优先创建索引。为什么不是在select后面出现的字段优先创建索引?因为查询SQL会先匹配on和where条件的字段,具体的匹配顺序是这样的:from > on > join > where > group by > having > select >