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)