mysql中的索引結構 以及語句的時間效率查詢

2021-10-07 18:06:41 字數 900 閱讀 5919

show variables; 檢視profiling 是否為on

如果是off, set profiling =1

執行sql語句

show profiles; 就可以查詢到sql語句的執行時間 (開啟profiling後所執行的所有sql語句都會記錄其中)

explain sql

possible_keys : 指mysql可能通過哪個索引在表中找到目標行, 如果是空, 說明沒有相關索引.

key : 查詢實際決定使用的鍵

key_len : 決定使用的鍵的長度

ref : 現實哪個字段或者常熟聯合key一起被使用

rows : 現實遍歷多少資料才能找到目標

extra

innodb也是使用b+ tree作為索引結構, 但是具體實現方式和myisam不同

innodb的輔助索引 中的葉子結點data域存放的是相應記錄主鍵的值, 而不是位址. 因此輔助索引需要檢索兩遍索引 : 受限檢索輔助索引獲得主鍵, 然後用主鍵到主索引中檢索獲得記錄.

為什麼不實用過長的字段作為主鍵?

因為所有的輔助索引都會引用主索引, 過長的主索引會使得輔助索引變得過大.

myisam 使用的是 非聚簇索引,非聚簇索引兩顆b+ tree結構上沒什麼區別, 只是儲存內容不同. 主索引b+ tree的即節點儲存的是 主鍵, 輔助索引b+ tree的結點儲存的是輔助鍵. 他們的葉子結點都是通過乙個位址指向真正的表資料.

mysql 如何檢視sql語句執行時間和效率

b樹和b+樹的插入、刪除**詳解

平衡二叉樹、b樹、b+樹、b*樹 理解其中一種你就都明白了

mysql索引實現原理分析

mysql 中 myisam 和 innodb 的區別有哪些?

資料庫索引的實現原理

MySql語句優化以及索引介紹

innodb和myisam 主要是這兩個其他可以忽略 兩者的特點和區別 innodb myisam msyql中的事務隔離級別 首先理解髒讀 不可重複讀和幻讀的含義。髒讀 讀到乙個事務未提交的資料。不可重複讀 事務1讀取了一行資料,但是事務未結束時,事務2對該資料進行修改了,事務1再次讀取時,兩次讀...

mysql索引語句 mysql建立索引語句格式

專案需要將某個表的某兩個字段新增唯一索引,保證這兩個欄位的值不能同時重複。alter table 表名 add unique index 索引名 欄位1,欄位2 當表中已經存在重複資料的時候,新增的時候就會報錯,這時候需要將資料去重。1 先查出來重複的資料 select from select 字段...

B Tree,B Tree以及mysql索引的實現

版權 通過這篇部落格來學習的 一 b tree b tree結構的1資料可以讓系統高效的找到資料所在的磁碟塊 為了描述b tree,我們先定義一條資料記錄為乙個二元組 key,data key為記錄的鍵值,對於不同資料記錄,key是互不相同的,data為key對應的值,m階的b tree是滿足下列條...