在大數據產業發展、社會治理、人工智能等領域,隨著社會數據量的急劇增長和數據復雜性的不斷增加,數據庫正發揮著越來越重要的作用。接下來小編為大家介紹介紹mysql數據庫索引常識的相關內容,感興趣的就一起來看看吧!
mysql數據庫索引常識
一,經常被用來過濾記錄的字段。
1. primary key 字段, 系統自動創建主鍵的索引;
2. unique key 字段,系統自動創建對應的索引;
3. foreign key 約束所定義的作為外鍵的字段;
4. 在查詢中用來連接表的字段; 經常用來作為排序(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、刪除無用的索引,避免對執行計劃造成負面影響;
數據庫設計就是根據業務系統的具體需求,結合我們所選用的DBMS(數據庫管理系統),為這個業務系統構造出最優的數據存儲模型。如果大家對此感興趣的話,可以多多搜索相關知識進行學習,以上就是小編為大家介紹的mysql數據庫索引常識,感謝觀看,希望本篇內容能對大家產生幫助。
[免責聲明]
文章標題: mysql數據庫索引常識
文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。