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

淺談PHP開發中MySQL數據庫索引的經驗

編輯:PHP綜合

假如我們創建了一個testIndex表:

CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOT NULL);

我們隨機向裡面插入了1000條記錄,其中有一條

i_testID  vc_Name

555  erquan

在查找vc_Name="erquan"的記錄

SELECT * FROM testIndex WHERE vc_Name='erquan';

時,如果在vc_Name上已經建立了索引,MySql無須任何掃描,即准確可找到該記錄!相反,MySql會掃描所有記錄,即要查詢1000次啊~~可以索引將查詢速度提高100倍。

一、索引分單列索引和組合索引

單列索引:即一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引。

組合索引:即一個索包含多個列。

二、介紹一下索引的類型

1.普通索引。

這是最基本的索引,它沒有任何限制。它有以下幾種創建方式:

(1)創建索引:CREATE INDEX indexName ON tableName(tableColumns(length));如果是CHAR,VARCHAR類型,length可以小於字段實際長度;如果是BLOB 和 TEXT 類型,必須指定length,下同。

(2)修改表結構:ALTER tableName ADD INDEX [indexName] ON (tableColumns(length))

(3)創建表的時候直接指定:CREATE TABLE tableName ( [...], INDEX [indexName] (tableColumns(length)) ;

2.唯一索引。

它與前面的"普通索引"類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。它有以下幾種創建方式:

(1)創建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))

(2)修改表結構:ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))

(3)創建表的時候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName] (tableColumns(length));

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