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的時候,就是生成了主鍵索引,採用二叉樹的形...