データベース学習によりインデックスのクエリー速度が向上(4)

3268 ワード

データベース学習により、インデックスのクエリー速度が向上
 
 
 
目次
インデックスの概要
MySQLのインデックス分類
索引の作成
索引の追加と削除
 
 
 
インデックスの概要
 
 
インデックスはMySQLでは「キー」とも呼ばれ、ストレージエンジンがレコードをすばやく見つけるためのデータ構造です.インデックスは、特にテーブル内のデータ量がますます大きくなると、パフォーマンスに与えるインデックスの影響がますます重要になります.インデックス最適化はクエリー最適化の最も有効な手段であるはずです.インデックスは、クエリのパフォーマンスを数桁容易に向上させることができます.インデックスは辞書の音順表に相当し、ある字を調べる場合、ある字を調べる場合、音順表を使用しない場合は、数百ページからページごとに調べる必要があります.インデックスの特徴:インデックスの作成と維持には多くの時間とディスク領域がかかりますが、クエリーの速度は大幅に向上します.インデックスの機能は、検索を高速化することです.mysqlのprimary key,unique,連合は唯一インデックスであり,これらのインデックスは検索を加速させるほか,制約の機能もある.
 
 
MySQLのインデックス分類
 
 
    
1.    index :    
2.    
        :primary key :    +  (      )
        :unique:    +   (  )
3.    (    )
    -primary key(id,name):      
    -unique(id,name):      
    -index(id,name):      
4.    fulltext :             ,    。
5.    spatial :    ,    

  
 
 
 
索引の作成
 
 
索引を作成する構文
      CREATE TABLE    (
                   1       [       …],
                   2       [       …],
                [UNIQUE | FULLTEXT | SPATIAL ]   INDEX | KEY
                [   ]  (   [(  )]  [ASC |DESC]) 
                );



  
 
テーブルの作成時にインデックスを作成
         :
CREATE TABLE emp1(
	id INT,
	name VARCHAR(20),
	resume VARCHAR(50),
	INDEX index_emp_name (name)
);




        :
CREATE TABLE emp2(
	id INT,
	name VARCHAR(30),
	bank_num CHAR(10),
	resume VARCHAR(50),
	UNIOUE INDEX index_emp_name (name)
);



         :
CREATE TABLE emp3(
	id INT,
	name VARCHAR(30),
	resume VARCHAR(50),
	FULLTEXT INDEX index_name_resume (resume)
);


        :
CREATE TABLE emp4(
	id INT,
	name VARCHAR(30),
	resume VARCHAR(50),
	INDEX index_name_resume (name,resume)
);

  
 
 
索引の追加と削除
 
 
索引を追加する構文
CREATE            
CREATE [UNIOUE | FULLTEXT  |  SPATIAL]  INDDX      ON    [   (  )]  [ASC | DESC];


ALTER TABLE            
ALTER TABLE     ADD [UNIOUE | FULLTEXT  |  SPATIAL]  INDDX     [   (  )]  [ASC | DESC];

  
インデックスを追加する例
CREATE INDEX index_emp_name on emp1(name); #      
ALTER TABLE emp2 ADD UNIOUE INDEX index_emp_name(name) #      
alter table emp2 add primary key(id); #      ,    id          
create index index_emp_name on emp5(id,name); #        

  
 
索引構文の削除
  :DROP INDEX     on   ;

  
インデックスを削除する例
DROP INDEX index_emp_name on emp1; #      
DROP INDEX index_emp_name on emp2; #      ,        ,   index  unique  ,       
alter table s1 drop primary key; #    (           alter    ,      alter  )

  
 
例えば、あるデパートのために会員カードのシステムを作っています.
          
     :
     INT
     VARCHAR(10)
        VARCHAR(18)
     VARCHAR(10)
     VARCHAR(50)
       TEXT

         ,    ,   PRIMARY
             ,        INDEX
                ,       UNIQUE (   ,     )

#          , FULLTEXT
       ,          ,        。
             ,    。
        ,        ,    INDEX    。
         ,       MySQL      ,           Sphinx,        。

#        SPATIAL,    ,    

  
転載先:https://www.cnblogs.com/-wenli/p/10380528.html