Mysql索引

索引優點

索引看著挺高大上的一個名字,說穿了就是我們書最新面的目錄。

假如你用新華字典來查找「張」這個漢字,不使用目錄的話,你可能要從新華字典的第一頁找到最後一頁,可能要花二個小時。字典越厚呢,你花的時間就越多。現在你使用目錄來找出「張」這個漢字,張的首字母是z,z開頭的漢字從900多頁開始,有了這條線索,你查找一個漢字可能只要一分鐘,由此可見索引的重要性。

索引用於快速找出在某個欄位中有一特定值的行。

不使用索引,MySQL必須從第1筆記錄開始然後讀取完整表直到找出相關的行。表越大,花費的時間越多。如果表中查詢的欄位有索引,MySQL能快速到達一個位置去搜尋到資料檔案的中間,沒有必要看所有資料。

當然索引也不易過多,索引越多寫入,修改的速度越慢。因為,寫入修改資料時,也要修改索引。

MySQL的索引類型

索引類型功能說明
普通索引最基本的索引,它沒有任何限制
#唯一索引某一行企用了唯一索引則不准許這一列的行資料中有重複的值。針對這一列的每一行資料都要求是唯一的
主鍵索引它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時建立主鍵索引,常用於使用者ID。類似於書中的頁碼
全文索引對於需要全域搜尋的數據,進行全文索引

註:以下部份請學習完12.7後再學習。

普通索引

#基本語法alter table 表 add index(字段) ADD INDEX( username);範例解釋為money表的username欄位增加索引
#類型詳細說明
#範例ALTER TABLE money

##唯一索引#詳細說明alter table 表 add UNIQUE(欄位)email);為money表的email欄位增加唯一索引
類型
基本語法
範例#ALTER TABLE money ADD UNIQUE(
範例解釋
######

全文索引

類型詳細說明
基本語法alter table 表 add FULLTEXT(字段)
#範例ALTER TABLE money ADD FULLTEXT(content);
範例解釋為money表的content欄位增加唯一索引
##主鍵索引

類型詳細說明#基本語法#alter table 表 add PRIMARY KEY(字段)範例ALTER TABLE 範例解釋為money表的id欄位增加主鍵索引
money ADD PRIMARY KEY(id);
建立表時也可以宣告索引

建立表格時可在建立表格語句後加上對應的類型即可宣告索引:

#PRIMARY KEY(欄位)

 INDEX [索引名] (字段)
 FULLTEXT [索引名] (字段)
 UNIQUE[索引名] (字段)

註:中括號中的索引名,代表可選。

整體範例如下:

CREATE TABLE

test (      
id INT NOT NULL ,      
#username VARCHAR(20) NOT NULL ,      
password INT NOT NULL ,      
content INT NOT NULL ,      PRIMARY KEY (
id),      INDEX pw (
password),      UNIQUE (
username),      FULLTEXT (
content)  ) ENGINE = InnoDB;

繼續學習
||
<?php echo "Hello Mysql"; ?>