[英]When it is time for a table to change from MyISAM to InnoDb?
這個問題就像我之前的問題的延續: 我是否正確InnoDb比MyISAM更頻繁的並發更新和插入?
但這次我有具體的問題。
我們知道,當我們沒有很多並發更新(插入)時,MyISAM比InnoDb更快。 當我們有許多並發更新時,MyISAM表被鎖定,所有其他客戶端應該等待。
1)但是什么時候從MyISAM改為InnoDb? 每秒更新1次? 每秒10次更新? 每秒100次更新?
2)對於一個具體的例子,最好是在我的網站上的一個表格中更改為InnoDb,我通常每分鍾有幾個更新(來自不同的會話),但有時它可以每秒2-3次更新?
如果可以,您可能不應該一次更改一個表。
更改整個服務器。 這樣,您可以針對僅限innodb的工作負載而不是myisam工作負載調整服務器。 這兩者是互不兼容的(為特定引擎分配內存緩沖區;它們不能共享內存)。
假設您有16G的ram,如果您沒有MyISAM表,您可能希望使用大約12G作為innodb緩沖池。
同樣,如果你只有MyISAM表,你可能想要完全關閉innodb,並給你的myisam密鑰緩存少一半(比如說6G)。
混合的myisam-innodb服務器需要權衡內存調整。
此外,您只想進行一次性能測試,而不是每次更改表時。
在某些情況下,這是一個巨大的過度簡化,而在其他人中說“我們知道MyISAM比InnoDb更快”是完全錯誤的。
如果您已經為服務器正確調整了InnoDB並運行了適當的服務器級硬件,那么InnoDB應該能夠在大多數查詢中與MyISAM競爭(不包括全表掃描,但是你沒有做很多這樣的事情,對吧)。
也就是說,除非你的數據是“瑣碎的笑話”大小。
如果你發現innodb對於插入/更新來說要慢得多,請記住它提供了更好的耐用性 - 如果你調整它與MyISAM大致相同的耐久性,那么你會看到良好的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.