本文介紹如何用sql語句建立、查看、刪除mysql表索引。
1.查看哪些表增加了索引sql語句
| 代碼如下 |
複製代碼 |
mysql> show index from tblname; mysql> show keys from tblname; |
比如執行“show index from v9_danji”這條sql語句,查看v9_danji這張表建立了哪些索引,會出來如下結果,可以看到索引的名稱和索引的類型等。
查看錶索引sql
2.給表某個欄位添加索引sql語句
| 代碼如下 |
複製代碼 |
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) |
這分別是用ALTER TABLE建立普通索引、UNIQUE索引或PRIMARY KEY索引。
也可以用如下sql語句:
CREATE INDEX可對錶增加普通索引或UNIQUE索引。
| 代碼如下 |
複製代碼 |
CREATE INDEX index_name ON table_name (column_list) CREATE UNIQUE INDEX index_name ON table_name (column_list) |
3.刪除表索引
| 代碼如下 |
複製代碼 |
DROP INDEX index_name ON talbe_name ALTER TABLE table_name DROP INDEX index_name ALTER TABLE table_name DROP PRIMARY KEY |
mysql資料庫建立索引的好處和代價
說起提高資料庫效能,索引是最物美價廉的東西了。不用加記憶體,不用改程式,不用調sql,只要執行個正確的’create index’,查詢速度就可能提高百倍千倍,這可真有誘惑力。可是天下沒有免費的午餐,查詢速度的提高是以插入、更新、刪除的速度為代價的,這些寫操作,增加了大量的I/O。由於索引的儲存結構不同於表的儲存,一個表的索引所佔空間比資料所佔空間還大的情況經常發生。
這意味著我們在寫資料庫的時候做了很多額外的工作,而這個工作只是為了提高讀的效率。因此,我們建立一個索引,必須保證這個索引不會“虧本”。
一般需要遵守這樣的規則:
索引的欄位必須是經常作為查詢條件的欄位;
如果索引多個欄位,第一個欄位要是經常作為查詢條件的。如果只有第二個欄位作為查詢條件,這個索引不會起到作用;
索引的欄位必須有足夠的區分度;
Mysql 對於長欄位支援首碼索引;