三倍是不可能的,一般innodb比MyISAM大30%左右,如果你是GBK升級的,那么就是 原大小 x 130% x 130%
當前云數(shù)據(jù)庫已經(jīng)非常普遍,大多數(shù)云數(shù)據(jù)庫都不支持MyISAM,所以轉(zhuǎn)為InnoDB是面對未來的必選項。
事務差異InnoDB是MySQL的事務型存儲引擎,支持ACID特性(原子性、一致性、隔離性和持久性),可以保證數(shù)據(jù)的完整性和一致性。而MyISAM不支持事務,這意味著在高并發(fā)的環(huán)境下,使用InnoDB更加可靠。
外鍵差異InnoDB是唯一支持外鍵的存儲引擎,可以通過外鍵約束來保持數(shù)據(jù)的一致性。而MyISAM不支持外鍵約束,因此在需要使用外鍵的情況下,選擇InnoDB是更好的選擇。
索引差異InnoDB和MyISAM對索引的處理方式也有所不同。InnoDB使用聚簇索引(clustered index),它的葉子節(jié)點存儲了實際的數(shù)據(jù)行,這樣可以加快根據(jù)索引進行數(shù)據(jù)檢索的速度。而MyISAM使用非聚簇索引(non-clustered index),葉子節(jié)點存儲的是指向?qū)嶋H數(shù)據(jù)行的指針。因此,在需要頻繁進行數(shù)據(jù)檢索的場景中,InnoDB的性能更好。
行鎖差異在并發(fā)訪問的情況下,InnoDB使用行級鎖(row-level locking),可以提供更好的并發(fā)性能。而MyISAM只支持表級鎖(table-level locking),這就意味著當一個線程對表進行寫操作時,其他線程無法對該表進行任何讀寫操作。
表鎖差異MyISAM的表級鎖對于整個表進行鎖定,因此在高并發(fā)的情況下可能導致較多的鎖沖突,降低了并發(fā)性能。而InnoDB的行級鎖可以最大程度地減少鎖沖突,提高了并發(fā)性能。
存儲文件差異InnoDB的數(shù)據(jù)和索引是存儲在一個共享的表空間文件中的,而MyISAM則將數(shù)據(jù)和索引分別存儲在不同的文件中。這也是為什么InnoDB在存儲空間利用率上相對較低的原因之一。
具體行數(shù)差異在大多數(shù)情況下,InnoDB的表通常需要占用更多的存儲空間,因為它包含了額外的數(shù)據(jù)結(jié)構(gòu)來支持事務和行級鎖等功能。而MyISAM則相對更加輕量級。
|