mysql innodb myisam引擎的區別

2021-06-18 07:07:06 字數 1761 閱讀 1212

1. innodb支援行鎖,mysiam支援表鎖;

2.innodb支援更好的崩潰恢復機制;

3. mysiam支援fullindex,innodb沒有;

4.innodb支援事務處理,外來鍵約束,關係約束;myisam沒有

5. innodb可以實現表壓縮

6. innodb中,除了text, blob型別外的其他字段型別,最多可以占用8,000 bytes大小的空間。

7.innodb中,count(*)操作要更慢一些(當sql中沒有where,group by, join時)。這是因為,innnodb表的行統計資料沒有在儲存引擎中儲存著。

8. innodb 使用 innodb buffer pool  快取。它會快取 innodib表的資料和索引;快取的資料和索引都在乙個檔案總。 myisam引擎的只快取來自.myi檔案中的索引

9. myisam占用更小的空間。count(*)操作更快(當sql中沒有where,group by, join時)。當只有讀操作時候,myisam表壓縮更高。

10. innodb提供空間資料型別,但是沒有空間索引型別。myisam二者均有(r-tree)。

參考11.快取機制不同。

myisam引擎的只快取來自.myi檔案中的索引,對mysql表資料的快取留給了作業系統完成。下面的sql可以計算出來推薦你使用的key_buffer_size :

select concat(round(kbs/power(1024,

if(powerof1024<0,0,if(powerof1024>3,0,powerof1024)))+0.4999),

substr(' kmg',if(powerof1024<0,0,

if(powerof1024>3,0,powerof1024))+1,1))

recommended_key_buffer_size from

(select least(power(2,32),kbs1) kbs

from (select sum(index_length) kbs1

from information_schema.tables

where engine='myisam' and

table_schema not in ('information_schema','mysql')) aa ) a,

(select 2 powerof1024) b;

innodb 使用 innodb buffer pool  快取。它會快取 innodib表的資料和索引;快取的資料和索引都在乙個檔案總;以下語句可以計算出innodb buffer pool 的大小:

select concat(round(kbs/power(1024,

if(powerof1024<0,0,if(powerof1024>3,0,powerof1024)))+0.49999),

substr(' kmg',if(powerof1024<0,0,

if(powerof1024>3,0,powerof1024))+1,1)) recommended_innodb_buffer_pool_size

from (select sum(data_length+index_length) kbs from information_schema.tables

where engine='innodb') a,

(select 2 powerof1024) b;

參考

InnoDB儲存引擎簡介 記憶體區相關

innodb引擎是mysql外掛程式引擎的其中乙個,由許多記憶體塊組成乙個記憶體池,主要負責 innodb引擎是基於磁碟儲存的,儲存的基本單位是頁 16kb 由於cpu和io速度差異的問題,需要使用快取記憶體來提高效能。緩衝池的大小可以通過引數innodb buffer pool size來設定,緩...

儲存引擎揭秘 基本結構之三 區

儲存引擎揭秘 基本結構之三 區 正文 前面的文章我介紹了資料檔案中的頁,包括頁結構和一些頁型別。現在我想解釋一下頁是如何組織成區 extent 的。乙個區是由資料檔案中 8個連續的頁組成。區從資料檔案頭部開始,並且總是 64k對齊 即 8頁對齊 區及其屬性在 sql server 2000 和200...

戰神引擎手遊版本合區 資料合併教程

戰神引擎手遊版本合區 資料合併教程 準備1 n11資料庫管理 2 兩個區的伺服器 3 戰神引擎合區工具 本合區教程是免mongodb資料庫 第一步 先確定把那個區合併到那個 第二步 合區之前,必須要備份資料 1 關閉引擎 2 關閉套件 3 複製乙份mir3這個資料夾,2個伺服器都要複製乙份 第四步 ...