标签: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
全表扫描,最令人心痛
标签:color balance pre between 全表扫描 inf else tab 成本
原文地址:https://www.cnblogs.com/guliang/p/11769296.html