mysql整理12 索引index整理

2021-09-11 03:45:16 字數 1271 閱讀 9430

為了提高查詢排序的速度

索引需要單獨檔案來儲存維護。

表資料發生變化需要維護索引表。

適合新增索引的情況:

表資料量足夠大;

增刪改操作較少;

高基數列

1. 可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。

2. 通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。

3. 可以加速表和表之間的連線。

4. 在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。

1. 建立索引,系統要占用大約為表的1.2倍的硬碟和記憶體空間來儲存索引。

2. 更新資料的時候,系統必須要有額外的時間來同時對索引進行更新,以維持資料和索引的一致性。

從資料結構角度
1.b+數索引(預設)

2.hash索引 (只能=值查詢,檢索效率高,只有memory引擎支援)

3.fulltext全文索引(現在myisam和innodb引擎都支援了)

4.r-tree索引(用於對gis資料型別建立spatial索引)

從物理儲存角度
1、聚集索引(clustered index)

聚簇索引是順序結構與資料儲存物理結構一致的一種索引,並且乙個表的聚簇索引只能有唯一的一條;

2、非聚集索引(二級索引)(non-clustered index)

非聚簇索引記錄的物理順序與邏輯順序沒有必然的聯絡,與資料的儲存物理結構沒有關係;

乙個表對應的非聚簇索引可以有多條,根據不同列的約束可以建立不同要求的非聚簇索引;

單列索引:

普通索引:create index index_name on 表(字段);

唯一索引:create unique index index_name on 表(字段);

全文索引:create fulltext index index_name on 表(字段);

空間索引:create spatial index index_name on 表(字段);

復合索引(組合索引):多列作為索引字段

刪除索引:drop index 名字 on 表;

索引不適合新增過多;

經常作為查詢條件的列適合作為索引列;

但是某些特殊情況下索引會失效: 索引失效的情況部落格sql優化

mysql 整理索引 Mysql索引整理

1 mysql基本單位是頁,大小為16kb 16384 1024 頁是為了增加查詢效率,減少io的互動 區域性性原理 2 頁與頁之間是雙向鍊錶,插入的時候會根據主鍵id進行排序 單葉資料結構.jpg 3 在頁上有乙個頁目錄,相當於把資料進行分組,存放的是當前組最小的主鍵id,指標並且指向對應的資料 ...

mysql 索引 磁碟整理 mysql 索引整理

1 只對 where 和 order by 子句中需要的列新增索引,多餘的索引智慧型導致不必要的硬碟空間愛你消耗。每次修改表資訊時會更新索引,因此有索引的表效能會相應降低。2 對於要使用索引的列要使用屬性 not null 這樣就永遠不會儲存 null 值。3 最好用唯一化索引,一般情況下,當查詢優...

mysql 整理 索引

一 在 command line client 中進行複製 在命令視窗ctrl c是不起作用的,只能靠右擊彈出的選單中的功能。可以這樣做 右擊 選擇 標記 然後用滑鼠拖動要複製的內容,然後在合適的位置右擊 選擇 複製 索引 一 索引的原理 對要查詢的字段建立索引其實就是把該字段按照一定的方式排序 建...