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);
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号