1. 程式人生 > >MySQL索引的操作

MySQL索引的操作

好的 找到 搜索 環境 性能提高 text sel 信息 tro

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索引的操作