程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql索引比較分析

mysql索引比較分析

編輯:MySQL綜合教程

mysql索引讓我們的查詢效率大大提高,但是,也不是所有情況都需要用到mysql索引,下面就讓我們來分析一下mysql索引的使用。

mysql中的表有兩種key,一種是primary key,還有secondary key。

如:

  1. CREATE TABLE layout_test (  
  2.  
  3.    col1 int NOT NULL,  
  4.  
  5.    col2 int NOT NULL,  
  6.  
  7.    PRIMARY KEY(col1),  
  8.  
  9.    KEY(col2)  
  10.  
  11. );  

col1是primary key,col2是secondary key。它們建立mysql索引。

以下簡稱為pk和sk。

myisam:

在myisam中,pk和sk的數據存儲方式是一樣的。都是b-tree的葉節點上存儲行號,即數據行的指針。

innodb:

在innodb中不太一樣。

pk是以聚簇索引存在的,並且在b-tee的葉節點上存放著primary key的值和其它列的值及事務ID和回滾指針。innodb的primary index是聚簇索引)

sk的葉節點上也與myisam不太一樣,它存放著primary key的值而不是數據的行指針)。

只有按最左邊前綴查詢的才會利用上索引。

下面這段來自mysql使用手冊:

  1. mysql> CREATE TABLE test (  
  2.            id INT NOT NULL,  
  3.            last_name CHAR(30) NOT NULL,  
  4.            first_name CHAR(30) NOT NULL,  
  5.            PRIMARY KEY (id),  
  6.            INDEX name (last_name,first_name)); 

那麼mysql索引name是一個在last_name和first_name上的索引,這個索引將被用於在last_name或last_name和first_name的一個已知范圍內指定值的查詢,因此,name索引將使用在下列查詢中:

  1. mysql> SELECT * FROM test WHERE last_name="Widenius";  
  2.  
  3. mysql> SELECT * FROM test WHERE last_name="Widenius" 
  4.                           AND first_name="Michael";  
  5.  
  6. mysql> SELECT * FROM test WHERE last_name="Widenius" 
  7.                           AND (first_name="Michael" OR first_name="Monty");  
  8.  
  9. mysql> SELECT * FROM test WHERE last_name="Widenius" 
  10.                           AND first_name >="M" AND first_name < "N";  
  11. 然而,name索引將不用在下列詢問中:   
  12.  
  13. mysql> SELECT * FROM test WHERE first_name="Michael";  
  14.  
  15. mysql> SELECT * FROM test WHERE last_name="Widenius" 
  16.                           OR first_name="Michael";  
  17.  

MySQL索引的用處

mysql索引的不足

實現ADO連接MYSQL的實現

mysql觸發器new old介紹

建立MySQL觸發器的語法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved