mysql中如何进行联合索引优化
explain select Fid from t_cyou_view_records where Fanchormasterid = 20237 and Froleid = 15081 and Fouttime is null order by Fentertime desc limit 1;
| id | select_type | table| type | possible_keys | key | key_len | ref | rows| Extra|
| 1 | SIMPLE | t_cyou_view_records | ALL | NULL | NULL | NULL| NULL | 1709800 | Using where; Using filesort |
看了where条件中两个字段的基数,建立联合索引会有指数级提升
show index from t_cyou_view_records
-> ;
| Table| Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | C
| t_cyou_view_records | 0 | PRIMARY|1 | Fid | A | 1710010 | NULL | NULL| | BTREE |
| t_cyou_view_records | 1 | idx_tcvr |1 | Fanchormasterid | A | 132 | NULL | NULL| YES | BTREE |
| t_cyou_view_records | 1 | idx_tcvrf |1 | Froleid | A |58965 | NULL | NULL| YES | BTREE |
alter table t_cyou_view_records add index idx_tcvrf(Froleid,Fanchormasterid);
Query OK, 0 rows affected (7.79 sec)
Records: 0 Duplicates: 0 Warnings: 0
explain select Fid from t_cyou_view_records where Fanchormasterid = 20237 and Froleid = 15081 and Fouttime is null order by Fentertime desc limit 1;
| id | select_type | table| type | possible_keys | key| key_len | ref | rows | Extra|
| 1 | SIMPLE | t_cyou_view_records | ref | idx_tcvrf | idx_tcvrf | 18 | const,const |3 | Using where; Using filesort |
扫描行数降低为3