Mysql索引测试

索引说明

PRIMARY KEY (`id`),
KEY `idx_name_sex_city` (`user_name`,`user_sex`,`user_city`),
KEY `idx_phone_num` (`phone_num`)
 

查询示例

SELECT
*
FROM 
user_test

-- 【const】- 主键、唯一键 - 直等号
-- WHERE id = 1
-- WHERE id in (1)
-- WHERE id =1 AND user_name='小明' AND user_sex=1 AND user_city='沈阳'
-- WHERE user_name='小明' AND id =1 AND user_sex=1 AND user_city='沈阳'
-- 唯一索引直等号

-- 【eq_ref】
-- 连接查询且右表连接索引为唯一索引


-- 【ref】- 索引直等号、组合索引左匹配边任意字段直等号
-- WHERE user_name='小明' AND user_sex=1 AND user_city='沈阳'
-- WHERE user_sex=1 AND user_city='沈阳' AND user_name='小明' 
-- WHERE user_name='小明'
-- WHERE user_name = '小明' AND user_city ='沈阳'
-- WHERE user_name = '小明' AND user_sex =1
-- WHERE user_sex=1 AND user_city='沈阳' AND phone_num ='188422200808' AND user_name='小明' 
-- WHERE phone_num ='188422200808' AND user_name='小明' AND user_sex=1 AND user_city='沈阳'
-- where phone_num in ( '18843333333')
-- where phone_num ='18843333333'

-- 【range】- 主键、索引(左匹配) - between、like右%、>、>=、<、<=
-- WHERE user_name LIKE '小明%' AND user_city LIKE '%沈阳'
-- WHERE user_name='小明' AND 1 <= user_sex AND user_sex <= 2 AND user_city='沈阳'
-- WHERE user_name='小明' AND user_sex BETWEEN 1 AND 2 AND user_city='沈阳'
-- WHERE user_name like '小%' and user_city like '%阳' order by user_class
-- WHERE id in (1,2) # 仅有主键in走range索引,其他索引(包括唯一索引)in均不走range索引而走all
-- WHERE phone_num > '18843333333'
-- WHERE phone_num like '18843333333%'


-- 【index】- 扫描全部索引且仅扫描索引,无需回表
-- select user_name, user_sex, user_city from user_test where user_sex = '1'


-- 【all】- 无主键、无索引、组合索引(右匹配)、!=、函数、like左%
-- WHERE user_sex=1 AND user_city='沈阳'
-- WHERE user_sex=1 
-- WHERE user_city='沈阳'
-- WHERE user_name='小明' AND user_sex in (1, 2) AND user_city='沈阳'
-- WHERE user_name = CONCAT(user_name, 'fei')
-- WHERE user_city like '%阳' order by user_class
-- WHERE phone_num in ( '18843333333', '188202382434')
-- WHERE phone_num != '18843333333'


 

发布了56 篇原创文章 · 获赞 6 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/luo15242208310/article/details/99674589