MySQL索引的操作
1.什麽是索引?
一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現性能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些復雜的查詢操作,因此對查詢語句的優化顯然是重中之重。說起加速查詢,就不得不提到索引了。
2.為什麽要有索引呢?
索引在MySQL中也叫做“鍵”,是存儲引擎用於快速找到記錄的一種數據結構。索引對於良好的性能
非常關鍵,尤其是當表中的數據量越來越大時,索引對於性能的影響愈發重要。
索引優化應該是對查詢性能優化最有效的手段了。索引能夠輕易將查詢性能提高好幾個數量級。
索引相當於字典的音序表,如果要查某個字,如果不使用音序表,則需要從幾百頁中逐頁去查。
======================================語法===========================================================
概述:總的來說就兩種創建索引的方式
【1】索引創建
方式一:CREATE INDEX 索引名
ON table_name (屬性名 ASC|DESC)
);
方式二:ALTER TABLE table_name
ADD INDEX|KEY 索引名 (屬性名 ASC|DESC);
註意:“ASC”參數用來指定升序排序,“DESC”用來指定降序排序。
【2】索引查看
<2-1>SHOW CREATE TABLE table_name;
結果:
<2-2>校驗數據庫某表中索引是否被使用
EXPLAIN
SELECT * FROM table_name WHERE 屬性名;
結果:
<2-3>使用索引查找數據信息
SELECT * FROM stu_info WHERE name=‘WENHEWEN‘;
結果:
【3】創建唯一索引(UNIQUE)
方式一:CREATE UNIQUE INDEX 索引名
ON table_name (屬性名);
方式二:ALTER TABLE table_name
ADD UNIQUE INDEX|KEY 索引名(屬性名);
【4】創建全文索引(FULLTEXT)
方式一:CREATE FULLTEXT INDEX 索引名
ON table_name (屬性名);
方式二:ALTER TABLE table_name
ADD FULLTEXT INDEX 索引名 (屬性名);
功能:全文索引(也稱全文檢索)是目前搜索引擎使用的一種關鍵技術。它能夠利用「分詞技術「等多種算法智能分析出文本文字中關鍵字詞的頻率及重要性,然後按照一定的算法規則智能地篩選出我們想要的搜索結果。
【5】創建多列索引
方式一:CREATE INDEX 索引名
ON table_name(屬性名1,屬性名2,.....屬性名n);
方式二:ALTER TABLE table_name
ADD INDEX 索引名(屬性名1,屬性名2,.....屬性名n);
註意:當查詢條件有多個字段時,單列索引和多列索引有很大的區別。如果使用多列索引,where條件中字段的順序非常重要,需要滿足最左前綴列。最左前綴:查詢條件中的所有字段需要從左邊起按順序出現在多列索引中,查詢條件的字段數要小於等於多列索引的字段數,中間字段不能存在範圍查詢的字段(<,like等),這樣的sql可以使用該多列索引。
【6】刪除索引
DROP INDEX 索引名
ON table_name;
MySQL索引的操作