国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

sql的索引選取原則

2019-11-14 10:41:17
字體:
來源:轉載
供稿:網友

1、 表的某個字段值得離散度越高,該字段越適合選作索引的關鍵字。主鍵字段以及唯一性約束字段適合選作索引的關鍵字,原因就是這些字段的值非常離散。尤其是在主鍵字段創建索引時,cardinality(基數,集的勢)的值就等于該表的行數。MySQL在處理主鍵約束以及唯一性約束時,考慮周全。數據庫用戶創建主鍵約束的同時,MySQL自動創建主索引(PRimary index),且索引名稱為Primary;數據庫用戶創建唯一性索引時,MySQL自動創建唯一性索引(unique index),默認情況下,索引名為唯一性索引的字段名。

2、 占用存儲空間少的字段更適合選作索引的關鍵字。例如,與字符串相比,整數字段占用的存儲空間較少,因此,較為適合選作索引關鍵字。

3、 存儲空間固定的字段更適合選作索引的關鍵字。與text類型的字段相比,char類型的字段較為適合選作索引關鍵字。

4、 Where子句中經常使用的字段應該創建索引,分組字段或者排序字段應該創建索引,兩個表的連接字段應該創建索引。

5、 更新頻繁的字段不適合創建索引,不會出現在where子句中的字段不應該創建索引。

6、 最左前綴原則。

7、 盡量使用前綴索引。

引入索引的目的就是提高數據的檢查效率,因此索引關鍵字的選擇與select語句息息相關。這句話有兩個含義:一是,select語句的設計可以決定索引的設計;索引的設計也同樣影響著select語句的設計。例如原則1與原則2,可以影響select語句的設計;而select語句中的where子句、group by子句以及,又可以影響索引的設計。兩個表的連接字段應該創建索引,外鍵約束一經創建,MySQL會自動地創建與外鍵相對應的索引,這是由于外鍵字段通常是兩個表的連接字段。

  復合索引還有一個優點,它通過被稱為“最左前綴”(leftmost prefixing)的概念體現出來的。假設向一個表的多個字段(例如fristname、lastname、address)創建復合索引(索引名為fname_lname_address).當where查詢條件是以下各種字段的組合是,MySQL將使用fname_lname_address索引。其他情況將無法使用fname_lname_address索引。可以理解:一個復合索引(firstname、lastname、address)等效于(firstname,llastname,age)、(firstname,lastname)以及(firstname)三個索引。基于最做前綴原則,應盡量避免創建重復的索引,例如,創建了fname_lname_address索引后,就無需再first_name子段上單獨創建一個索引。

 

如果數據庫表的存儲引擎是MyISAM,那么創建主鍵的約束的同時,MySQL會自動創建主鍵索引。如果數據庫表的存儲引擎是InnoDB,那么創建主鍵約束的同時,MySQL會自動創建聚簇索引。

 MySQL還支持全文索引(fulltext),當查詢數據量大的字符串信息時,使用全文索引可以大幅提升字符串的檢索效率。需要注意的是,全文索引只能創建在char、varchar或者text字符串類型的字段上,且全文索引不支持前綴索引。

轉載自:http://blog.itpub.net/29272216/viewspace-1243730/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绍兴市| 凌海市| 福泉市| 邮箱| 青海省| 遂宁市| 璧山县| 普定县| 蓬溪县| 台南县| 福安市| 轮台县| 武穴市| 麟游县| 馆陶县| 枣庄市| 宁陵县| 沅陵县| 团风县| 柯坪县| 社会| 双柏县| 江北区| 齐齐哈尔市| 木兰县| 北安市| 噶尔县| 泗阳县| 扶绥县| 莆田市| 习水县| 亳州市| 天峨县| 安龙县| 利津县| 内丘县| 长宁县| 天长市| 拜泉县| 宿州市| 四会市|