MySQL创建复合索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL创建复合索引相关的知识,希望对你有一定的参考价值。

mysql数据库中,创建复合索引的时候,不知道在创建过程中哪个列在前面,哪个列该在后面,用以下方式即可:


select count(distinct first_name)/count(*) as first_name_selectivity,
count(distinct last_name)/count(*) as last_name_selectivity,
count(*)
from actor\G


mysql> select count(distinct first_name)/count(*) as first_name_selectivity,
    -> count(distinct last_name)/count(*) as last_name_selectivity,
    -> count(*)
    -> from actor\G
*************************** 1. row ***************************
first_name_selectivity: 0.6400
 last_name_selectivity: 0.6050
              count(*): 200
1 row in set (0.01 sec)


first_name_selectivity: 0.6400,因此 first_name 列的选择性更高,所以答案将其作为索引列的第一列:

mysql> alter table yoon add key (first_name,last_name);

以上是关于MySQL创建复合索引的主要内容,如果未能解决你的问题,请参考以下文章

关于MySQL复合索引的使用方法有哪些?

如何修复“MySQL 错误:1822。缺少约束索引”关于创建复合外键

MySQL:制作 3 个字段的复合索引,还是制作 3 个单独的索引?

MariaDB/MySQL 复合唯一索引无效

使用复合索引优化MySQL查询

带有tenant_id的Mysql复合索引