zoukankan      html  css  js  c++  java
  • MySQL操作(四)索引及优化

    一、索引操作

    -- 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
    全表扫描,最令人心痛

     

  • 相关阅读:
    uva10129 PlayOnWords(并查集,欧拉回路)
    UVA439 knightMoves (A*启发搜索)
    uva297 Quadtrees (线段树思想,区间操作)
    [uva]AncientMessages象形文字识别 (dfs求连通块)
    [uva816]AbbottsRevenge Abbott的复仇(经典迷宫BFS)
    [dp][uestc]L
    [dp][uestc oj]J
    [uestc oj]H
    [dp uestc oj] G
    [dp]uestc oj 邱老师看电影
  • 原文地址:https://www.cnblogs.com/guliang/p/11769296.html
Copyright © 2011-2022 走看看