婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談mysql的索引設計原則以及常見索引的區別

淺談mysql的索引設計原則以及常見索引的區別

熱門標簽:遂寧400電話申請 哈爾濱云外呼系統運營商 邯鄲400電話注冊辦理 南寧智能電銷機器人價格 趙縣地圖標注 地圖標注直通車 電銷機器人市場價 dq8 全地圖標注 永州智能外呼系統

索引定義:是一個單獨的,存儲在磁盤上的數據庫結構,其包含著對數據表里所有記錄的引用指針.

數據庫索引的設計原則:

為了使索引的使用效率更高,在創建索引時,必須考慮在哪些字段上創建索引和創建什么類型的索引。
那么索引設計原則又是怎樣的?

1.選擇唯一性索引

唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。
例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的信息。
如果使用姓名的話,可能存在同名現象,從而降低查詢速度。

2.為經常需要排序、分組和聯合操作的字段建立索引

經常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作會浪費很多時間。
如果為其建立索引,可以有效地避免排序操作。

3.為常作為查詢條件的字段建立索引

如果某個字段經常用來做查詢條件,那么該字段的查詢速度會影響整個表的查詢速度。因此,
為這樣的字段建立索引,可以提高整個表的查詢速度。

4.限制索引的數目

索引的數目不是越多越好。每個索引都需要占用磁盤空間,索引越多,需要的磁盤空間就越大。
修改表時,對索引的重構和更新很麻煩。越多的索引,會使更新表變得很浪費時間。

5.盡量使用數據量少的索引

如果索引的值很長,那么查詢的速度會受到影響。例如,對一個CHAR(100)類型的字段進行全文
檢索需要的時間肯定要比對CHAR(10)類型的字段需要的時間要多。

6.盡量使用前綴來索引

如果索引字段的值很長,最好使用值的前綴來索引。例如,TEXT和BLOG類型的字段,進行全文檢索
會很浪費時間。如果只檢索字段的前面的若干個字符,這樣可以提高檢索速度。

7.刪除不再使用或者很少使用的索引

表中的數據被大量更新,或者數據的使用方式被改變后,原有的一些索引可能不再需要。數據庫管理
員應當定期找出這些索引,將它們刪除,從而減少索引對更新操作的影響。

8.小表不應建立索引;包含大量的列并且不需要搜索非空值的時候可以考慮不建索引

----------------------------------------------------------

mysql索引相關小常識:

一、 經常被用來過濾記錄的字段。

1. primary key 字段, 系統自動創建主鍵的索引;
2. unique key 字段,系統自動創建對應的索引;
3. foreign key 約束所定義的作為外鍵的字段;

4. 在查詢中用來連接表的字段;

5. 經常用來作為排序(order by 的字段)基準的字段;

二、索引會占用磁盤空間,創建不必要的索引只會形成浪費。

三、索引的創建必須考慮數據的操作方式。

1.內容很少變動,經常被查詢,為它多創建幾個索引無所謂;

2.經常性,例行性變動的表而言,則需要謹慎地創建確實必要的索引;

四、primary key 和 unique key的區別

1. 作為Primary Key的域/域組不能為null。而Unique Key可以。

2. 在一個表中只能有一個Primary Key,而多個Unique Key可以同時存在。

更大的區別在邏輯設計上, Primary Key一般在邏輯設計中用作記錄標識,這也是設置
Primary Key的本來用意, 而Unique Key只是為了保證域/域組的唯一性。

五、復合索引和單一索引

復合索引是指多字段聯合索引,查詢時經常需要這幾個字段組合一起為條件再查詢

唯一索引主要是用主鍵ID索引,存儲結構順序與物理結構一致

如:create  index  idx  on  tbl(a,b) 

先按a排序, a相同的按b排序,所以當你查a或ab的時候,

能夠利用到這個索引.但當你只查b的時候,索引對你的幫助不大.可能可以跳躍查找.

---------------------------------------------

添加和刪除索引的情況:

1、表的主鍵、外鍵必須有索引;

2、數據量超過300w的表應該有索引;

3、經常與其他表進行連接的表,在連接字段上應該建立索引;

4、經常出現在Where子句中的字段,特別是大表的字段,應該建立索引;

5、索引應該建在選擇性高的字段上;

6、索引應該建在小字段上,對于大的文本字段甚至超長字段,不要建索引;

7、復合索引的建立需要進行仔細分析;盡量考慮用單字段索引代替:

A、正確選擇復合索引中的主列字段,一般是選擇性較好的字段;

B、復合索引的幾個字段是否經常同時以AND方式出現在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復合索引;否則考慮單字段索引;

C、如果復合索引中包含的字段經常單獨出現在Where子句中,則分解為多個單字段索引;

D、如果復合索引所包含的字段超過3個,那么仔細考慮其必要性,考慮減少復合的字段;

E、如果既有單字段索引,又有這幾個字段上的復合索引,一般可以刪除復合索引;

8、頻繁進行數據操作的表,不要建立太多的索引;

9、刪除無用的索引,避免對執行計劃造成負面影響;

以上是一些普遍的建立索引時的判斷依據。一言以蔽之,索引的建立必須慎重,對每個索引的必要性都應該經過仔細分析,要有建立的依據。因為太多的索引與不充分、不正確的索引對性能都毫無益處:在表上建立的每個索引都會增加存儲開銷,索引對于插入、刪除、更新操作也會增加處理上的開銷。另外,過多的復合索引,在有單字段索引的情況下,一般都是沒有存在價值的;相反,還會降低數據增加刪除時的性能,特別是對頻繁更新的表來說,負面影響更大

以上這篇淺談mysql的索引設計原則以及常見索引的區別就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySQL 可擴展設計的基本原則
  • Mysql 索引該如何設計與優化
  • 專業級的MySQL開發設計規范及SQL編寫規范
  • MySQL備份恢復設計思路
  • MySQL20個高性能架構設計原則(值得收藏)
  • Mysql數據庫設計三范式實例解析
  • mysql分表分庫的應用場景和設計方式
  • MySQL數據庫設計之利用Python操作Schema方法詳解
  • 如何設計高效合理的MySQL查詢語句
  • PHP+Mysql樹型結構(無限分類)數據庫設計的2種方式實例
  • MySQL分表實現上百萬上千萬記錄分布存儲的批量查詢設計模式詳解
  • PHP+MySQL投票系統的設計和實現分享
  • MySQL 常見的數據表設計誤區匯總

標簽:上海 張家界 定西 中衛 南寧 阿里 鄂州 浙江

巨人網絡通訊聲明:本文標題《淺談mysql的索引設計原則以及常見索引的區別》,本文關鍵詞  淺談,mysql,的,索引,設計,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談mysql的索引設計原則以及常見索引的區別》相關的同類信息!
  • 本頁收集關于淺談mysql的索引設計原則以及常見索引的區別的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 孝感市| 通州区| 留坝县| 重庆市| 宁陵县| 昔阳县| 湛江市| 南平市| 永德县| 扎囊县| 高平市| 栾川县| 扶绥县| 长丰县| 台东县| 长葛市| 阿勒泰市| 左云县| 苍南县| 南和县| 安乡县| 合阳县| 金坛市| 博爱县| 南漳县| 梧州市| 宁夏| 汝阳县| 镶黄旗| 军事| 昌平区| 梅州市| 辰溪县| 穆棱市| 泽库县| 邵武市| 河津市| 南京市| 措美县| 万源市| 永顺县|