本文實例講述了MySQL查看、創建和刪除索引的方法。分享給大家供大家參考。具體如下:
1.索引作用
在索引列上,除了上面提到的有序查找之外,數據庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當數據量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。
例如,有3個未索引的表t1、t2、t3,分別只包含列c1、c2、c3,每個表分別含有1000行數據組成,指為1~1000的數值,查找對應值相等行的查詢如下所示。
SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
此查詢結果應該為1000行,每行包含3個相等的值。在無索引的情況下處理此查詢,必須尋找3個表所有的組合,以便得出與WHERE子句相配的那些行。而可能的組合數目為1000×1000×1000(十億),顯然查詢將會非常慢。
如果對每個表進行索引,就能極大地加速查詢進程。利用索引的查詢處理如下。
(1)從表t1中選擇第一行,查看此行所包含的數據。
(2)使用表t2上的索引,直接定位t2中與t1的值匹配的行。類似,利用表t3上的索引,直接定位t3中與來自t1的值匹配的行。
(3)掃描表t1的下一行并重復前面的過程,直到遍歷t1中所有的行。
在此情形下,仍然對表t1執行了一個完全掃描,但能夠在表t2和t3上進行索引查找直接取出這些表中的行,比未用索引時要快一百萬倍。
利用索引,MySQL加速了WHERE子句滿足條件行的搜索,而在多表連接查詢時,在執行連接時加快了與其他表中的行匹配的速度。
2. 創建索引
在執行CREATE TABLE語句時可以創建索引,也可以單獨用CREATE INDEX或ALTER TABLE來為表增加索引。
1.ALTER TABLE
ALTER TABLE用來創建普通索引、UNIQUE索引或PRIMARY KEY索引。
- ALTER TABLE table_name ADD INDEX index_name (column_list)
- ALTER TABLE table_name ADD UNIQUE (column_list)
- ALTER TABLE table_name ADD PRIMARY KEY (column_list)
新聞熱點
疑難解答