2009-11-17 58 views

回答

26

如果要存儲的斑點如圖像則不要使用tokudb另一篇評論。它具有較小的行大小限制。

如果您的數據超過1億行,請使用tokudb。

如果您對UPDATE速度敏感,請勿使用tokudb。它具有非常快速的插入,但與innodb相比,UPDATE速度更慢,尤其是在使用INSERT ON DUPLICATE語句時。

如果您要存儲日誌條目,請使用tokudb。

如果您想縮小myisam/innnodb的數據使用量5倍以上,請使用tokudb。我個人確認他們的分形樹+壓縮數據後端非常節省空間。

經驗法則,使用最好的工具進行工作。 Tokudb在特定情況下將innodb和myisam吹出水域,但它不是天空下所有東西的通用替代數據庫引擎。

+4

完全同意。我們有三個數據庫 - 兩個大約1.5TB和一個40GB。我們已經將兩個大型計算機移動到了TokuDB,並被它吹走了 - 我們看到在相當普通的硬件上每秒鐘超過15k個查詢(其中一半是插入/更新)。添加在線模式維護(列添加/刪除,索引創建/刪除),這是驚人的。也就是說@Xing對於使用正確的工具來說是正確的 - 我們已經在InnoDB上留下了更小的數據庫,因爲我們發現它對於較小的工作負載來說效果更好。我們一直在苦苦經營TokuDB,生產了6個月,並沒有出現任何問題。 –

7

雖然TokuDB在UPDATE上的速度較慢,但​​在REPLACE中速度非常快。通常你可以用REPLACE INTO代替UPDATE。我在高達180億行的表上使用TokuDB,沒有其他東西接近,它至少比innodb快大約100倍,用於大型表上的隨機插入。

+2

如何選擇? –

+5

使用REPLACE INTOS批量替換UPDATES幾乎肯定會破壞您的數據庫 - 如果REPLACE INTO缺少一些列,它們將被重置爲默認值!想象一下,如果你的表有一個需要保留其值的引用計數列 - REPLACE INTO將把它設置回零。繁榮! – DroidOS