1.myisam
(1)檢視該錶的myi檔案有沒有以id為索引的索引樹。
(2)根據這個id索引找到葉子節點的id值,從而得到它裡面的資料位址。(葉子節點存的是索引和資料位址)。
(3)根據資料位址去myd檔案裡面找到對應的資料返回出來。
2.innodb
(1)找到name索引樹
(2)根據name的值找到該樹下葉子的name索引和主鍵值
(3)用主鍵值去主鍵索引樹去葉子節點到該條資料資訊
區別
myisam b+樹葉子節點存的是資料位址 (指標) innodb 存的是資料
myisam 支援全文索引;不支援事務;它是表級鎖;會儲存表的具體行數
innodb 5.6以後才有全文索引;支援事務;它是行級鎖;不會儲存表的具體行數.
b-樹和b+樹區別
b-樹的分支節點上都會存放資料而b+樹只在葉子節點存放資料所以b-樹一般情況的深度更高所以查詢所走的路徑更多 更慢。
非聚族索引就好比字典裡的偏旁、筆畫索引,其 索引組織順序和資料組織順序不一致 ,因此非聚族索引可以建立多個。當查詢一條資料時,非聚族索引和聚族索引的效率相差不大,但查詢一批資料(n)時,非聚族索引需要的io可能是聚族索引的n倍,因為非聚族索引需要一條一條地進行查詢。
mysql引擎總結 MySQL引擎總結
檢視引擎情況 show engines 檢視預設的資料庫配置 show variables like default storage engine 更改資料庫引擎 修改配置檔案my.ini,mysqld 最後新增為上default storage engine innodb,重啟服務 修改某張表的引...
mysql引擎總結 MySQL儲存引擎總結
儲存引擎 儲存引擎其實就是如何實現儲存資料,如何為儲存的資料建立索引以及如何更新,查詢資料等技術實現的方法。儲存引擎的選擇 1 是否需要支援事務 2 是否需要使用熱備 3 崩潰恢復 能否接受崩潰 4 是否需要外來鍵支援 myisam 1 每當建立乙個myisam引擎的表時,就會在本地磁碟上建立三個檔...
mysql 索引總結 mysql索引總結
mysql中每乙個表都有乙個聚簇索引clusted index,該所索引是預設建立的,除此之外的表上的每乙個非聚簇索引都是二級索引,又叫輔助索引 secondary indexes 以innodb來說,每個innodb表具有乙個特殊的索引稱為聚集索引,如果您的表上定義有主鍵,該主鍵索引是聚集索引,如...