コンビネーションカラムmysqlでのインデックス使用の原則

12233 ワード

毎日貼ると、今日の内容キーワードは組み合わせ列です
    
テーブルにインデックスを作成することは、データベースの最適化方法の1つに違いありません.以下は、インデックスに対する自己のまとめです.
    
 
    
MYSQL QUERY Optimizerインデックスの選択
    
1.1つのSQLで複数のインデックスを選択できますが、多くの場合、1つのインデックスを選択し、他のインデックスを破棄します.
    
インデックスを適用する前提:
    
1.インデックスの保存はwhere条件の後です.
    
2.MYSQLではストレージエンジンによってインデックスの見方が少し違います.
    
 
    
 
    
よく使用されるインデックスのタイプと状況
    
    
接頭辞インデックス(短いインデックスとも呼ばれる)
    
シリアル列のインデックスを停止します.可能な場合は、接頭辞の長さを指定します.たとえば、CHAR(255)のカラムがある場合、最初の10文字または20文字以内に複数の数値が一意である場合は、カラム全体にインデックスを停止しないでください.短いインデックスは、クエリーの高速化だけでなく、ディスク領域とI/O操作の節約にも役立ちます.
    
サンプルコード:
//     
create

     index
    ix_test
     on
    t(col(200))
 
  
//     
SELECT

    userName,income
     FROM
    t
     WHERE
    col
     like
    '
    john%
    ';
 
  

    

: like ’%’ 。

    

 

    

 

    

    


    

:select * from users where area=’beijing’ and age=22;
area age , mysql , , area、age 。 (area, age, salary) , (area,age,salary)、(area,age)、(area) , 。

    

,MYSQL :

    
, , , 。 , , , , 。 , , , 。
select

    *
     from
    users
     where
    area=’beijing’
     and
    age=22;
 
  
select

    *
     from
    users
     where
    area=’beijing’;
 
  
  area   ,    SQL        ,               , select *

     from
    users
     where
    age=22; インデックスは されません.
 
  

    

 

    

, 。

    

 

    

 

    

    


    

90% ( ), , , 。 , Query IO , , 。

    

 

    

, Query , , , 。

    

 

    

OR SQL

    


    

or,where , , or

    

SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael';

    

 

    

 

    

ordery by

    


    

mysql , where , order by 。

    

;( ) , 。


   . : , . : .
   : ! , !
   : ! 6 .
   : .