mysql高階 索引使用場景和優化

2021-08-31 16:18:42 字數 1024 閱讀 9978

索引

1.索引簡介

mysql官方對索引的定義:索引(index)是幫助mysql高效獲取資料的資料結構。因此索引的本質就是資料結構。索引的目的在於提高查詢效率,可模擬字典、書籍的目錄等這種形式。

2.索引的優缺點

優點:查詢快。

缺點:(1)建立索引和維護索引要耗費時間,這種時間隨著資料量的增加而增加。

(2)索引需要佔物理空間,除了資料表佔資料空間之外,每乙個索引還要佔一定的物理空間,如果要建立聚集索引那麼需要的空間就會更大。

(3)當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度。

3.索引分類

(1)單值索引:乙個索引只包含單個列,乙個表可以有多個單值索引。

(2)唯一索引:索引列的值必須唯一,但允許有空值,主鍵就是唯一索引。

(3)復合索引:乙個索引包含多個列

索引的結構:

(1)btree索引;(2)hash索引;(3)full-text索引;(4)r-tree索引。

2.使用場景

1.需要建立

(1)主鍵自動建立唯一索引

(2)頻繁作為查詢條件的字段

(3)查詢中與其它表關聯的字段,外來鍵關係建立索引

(4)高併發下傾向建立組合索引

(5)查詢中排序的字段

(6)查詢中統計或分組字段

2.不要建立索引

(1)頻繁更新的字段

(2)where條件裡用不到的字段

(3)表記錄太少

(4)經常增刪改的表

(5)資料重複且分布平均的表字段

3.索引優化

索引優化的目的主要是讓索引不失效

(1)全值匹配。

(2)索引列上不計算。

(3)覆蓋索引記住用。

(4)不等於、is null、is not null導致索引失效。

(5)like百分加右邊,加左邊導致索引失效,解決方法:使用覆蓋索引。

(6)字串不加單引號導致索引失效。

(7)少用or,用or導致索引失效。

mongodb 使用場景和不使用場景

1.mongodb介紹 mongodb 名稱來自 humongous 是乙個可擴充套件的高效能,開源,模式自由,面向文件的資料庫。它使用c 編寫。mongodb特點 a.面向集合的儲存 適合儲存物件及json形式的資料。b.動態查詢 mongo支援豐富的查詢表達方式,查詢指令使用json形式的標記,...

mongodb 使用場景和不使用場景

mongodb 使用場景和不使用場景 2012 09 26 10 30 18 分類 linux 1.mongodb介紹 mongodb 名稱來自 humongous 是乙個可擴充套件的高效能,開源,模式自由,面向文件的資料庫。它使用c 編寫。mongodb特點 a.面向集合的儲存 適合儲存物件及js...

mongodb 使用場景和不使用場景

1.mongodb介紹 mongodb 名稱來自 humongous 是乙個可擴充套件的高效能,開源,模式自由,面向文件的資料庫。它使用c 編寫。mongodb特點 a.面向集合的儲存 適合儲存物件及json形式的資料。b.動態查詢 mongo支援豐富的查詢表達方式,查詢指令使用json形式的標記,...