MySQL创建复合索引
2016-01-29 17:22
330 查看
在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);
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批量杀进程
- MySQL 多实例给root用户创建密码
- MySQL 多实例启动和关闭脚本
- MySQL 多实例删库脚本
- MySQL 多实例数据库还原脚本-备份集与端口对应
- 【转载】mysql 四种隔离级别分析
- 今天在操作MySQL里的表时报了两个错
- MYSQL 配置slave故障
- mysql 配置主从
- MYSQL-给带特殊符号的数据库创建用户名
- MYSQL创建多张表,相同表结构,不同表名
- 那些天zabbix踩的坑
- 使用nodejs,express,mysql,Bootstrap开发采购招标网站(四)Bootstrap-table实现Ajax新增修改数据
- Mysql 一次性备份导出/导入恢复所有数据库
- MySQL性能优化相关知识
- mysql利用st_distance函数查询附近的点的功能
- JS截取字符串常用方法详细整理&&MYSQL
- mysql要实现定时执行sql语句就要用到Event