码迷,mamicode.com
首页 > 数据库 > 详细

MySQL操作(四)索引及优化

时间:2019-11-03 10:57:08      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:color   balance   pre   between   全表扫描   inf   else   tab   成本   

一、索引操作

-- 1、查看表的索引
SHOW INDEX FROM ebh_roomsms;

-- 2、添加PRIMARY KEY(主键索引) 
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 

-- 3、添加UNIQUE(唯一索引) 
mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 

-- 4、添加INDEX(普通索引) 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
-- 例:ALTER TABLE `ebh_users` ADD INDEX initpwd (`initpwd`) 

-- 5、添加FULLTEXT(全文索引) 
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
-- 6、添加多列索引 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

二、简单分析SQL语句及索引

1、Explain命令  用于分析sql语句的执行情况和成本预估 

EXPLAIN SELECT count(0) count,if(sex=0,,) sex,avg(balance),(case when balance<1000 then 1000以下 when balance BETWEEN 1000 and 5000 then 1000-5000 else 5000以上 end) as `level` from ebh_users where sex<2  GROUP BY `level`,sex;

技术图片

type指标逐渐降低:

system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all


a.const
如果是根据主键或唯一索引 只取出确定的一行数据。是最快的一种。
b.range
索引或主键,在某个范围内时
c.index
仅仅只有索引被扫描
d.all
全表扫描,最令人心痛

 

 

MySQL操作(四)索引及优化

标签:color   balance   pre   between   全表扫描   inf   else   tab   成本   

原文地址:https://www.cnblogs.com/guliang/p/11769296.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!