mysql調優(一)索引結構

2021-10-06 21:33:26 字數 1529 閱讀 8213

2、聚集索引與非聚集索引

3、什麼是回表

4、什麼是索引覆蓋(解決回表的方法)

5、 uuid與自增int型id效能上對比

mysql的基本儲存結構是頁(記錄都存在頁裡面),各個資料頁可以組成乙個雙向鍊錶,每個資料頁都會為儲存在它裡面的記錄生成乙個頁目錄,每個資料頁中的內容又可以組成乙個單向鍊錶。

在中innodb 1頁 預設16kb

如下圖 真實結構

便於理解的結構

思考:1、一條資料 4位元組 一頁存多少記錄?

4096條記錄

2、頁目錄如何查詢使用者區域資料? 通過2分查詢法找使用者區域資料

3、每頁(每個槽)儲存幾條記錄?

每組 4-8條記錄,到達8條拆分成2組、槽記錄最後資料的位置

總體:資料塊為雙向鍊錶、上層節點為頁數的節點

結構圖:

聚集索引是指資料庫錶行中資料的物理順序與鍵值的邏輯(索引)順序相同。乙個表只能有乙個聚集索引,因為乙個表的物理順序只有一種情況,所以,對應的聚集索引只能有乙個。如果某索引不是聚集索引,則表中的行物理順序與索引順序不匹配,與非聚集索引相比,聚集索引有著更快的檢索速度。

非聚集索引是一種索引,該索引中索引的邏輯順序與磁碟上行的物理儲存順序不同。

總結 :聚集索引:有索引存了所有資料

非聚集索引:有索引,只存了資料的id(主鍵) 查詢可能存在回表

利用上了幾個索引字段

網上的圖 表達的很明白

這就是所謂的回表查詢,先定位主鍵值,再定位行記錄,它的效能較掃一遍索引樹更低。

經過500w、1000w的單機表測試,自增id相對uuid來說,自增id主鍵效能高於uuid,磁碟儲存費用比uuid節省一半的錢。所以在單例項上或者單節點組上,使用自增id作為首選主鍵。

MySql效能調優 索引

在對mysql的查詢語句優化過程中,我們最常用的手段就是新增索引,可見索引對資料庫優化的重要性,下面就說一說在優化過程中,索引的一些用法,鑑於本人水平有限,可能會有一些說得不對的地方,歡迎指正。下面例子中需要使用1張表,表結構如下 create table order order id int 11...

mysql 調優 Mysql調優

表設計 1 禁止使用外來鍵 2 多表中的相同列,必須保證列定義一致 3 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表 4 表必須包含gmt create和gmt modified欄位,即表必須包含記錄建立時間和修改時間的字段 5 單錶一到兩年內資料量超過500w或資料...

SQL調優(索引)

索引 主鍵索引,唯一索引,組合索引,全文索引等 sql優化步驟 首先定位慢查詢 mqsql預設是響應超過十秒鐘的才是慢查詢 定位到了慢查詢才根據語句看採用什麼調優方式 索引的實現原理其實就是二叉樹 b 樹 主鍵索引 當我們在習慣性的生成primiry key的時候,就是生成了主鍵索引,採用二叉樹的形...