2011-10-10 104 views
0

我們想從的MyISAM InnoDB的原因有幾個開關,但我們不打算使用與交易BEGIN/COMMIT等即使我不使用事務,死鎖是否會影響我?

是否有一個地方死鎖可以使用SELECT,INSERT,UPDATE剛剛發生和刪除任何情況下, ?我們使用一些JOIN,當然我們有很多INDEX。

如果我將所有的表格轉換爲InnoDB,我如何在真實生活模擬中測試該網站?如果只有幾個人點擊該網站,這不會像100位用戶在線點擊,添加,刪除等時的情況。您是否推薦使用任何工具來執行此操作?

預先感謝您的任何提示! :)

+0

InnoDB中的死鎖比MyISAM中的問題少**。 MyISAM使用表鎖,InnoDB使用行鎖。 – Johan

+0

看到這個答案:http://stackoverflow.com/questions/5970210/explain-inexplicable-deadlock –

回答

0

總之,可能會出現死鎖,因爲(默認設置爲AUTOCOMMIT = ON,意思)的每一句話(SELECTUPDATEINSERTDELETE)被視爲InnoDB的一個單獨的事務 - 並執行後立即autocommitted。

參見:Implicit Transaction Commit and Rollback

但是,正如@Johan點,就應該少比的InnoDB MyISAM的一個問題,因爲行級鎖的使用,在可能的情況。

還要檢查@ MarkR的回答在這個問題上,瞭解詳情:Explain Inexplicable Deadlock


對於壓力測試,我聽說過,但沒有用Super Smack,這是一個基準和壓力針對MySQL和PostgreSQL的測試工具。

但是,由於大多數用戶可能會使用您的Web界面,所以這種界面的壓力測試工具可能足以滿足您的需求。

1

你有兩個非常不同的問題在這裏。

1是的,即使沒有顯式使用事務,死鎖也可能發生,因爲所有插入/更新/刪除語句都使用「底層」行級鎖定。 Read more here

2一般來說,壓力/性能測試不是一項簡單的任務,並且沒有很多通用工具可以很好地實現。你如何強調測試其他數據庫的變化(添加/更改/刪除索引,表格模式更改)?

+0

非常感謝,我會閱讀上面的文檔和其他答案。我們沒有做過任何壓力測試,只有手動測試。但是我們發現了一些名爲http://loadimpact.com/和http://loadstorm.com/的工具,聽起來可能有用。 – Niclas

相關問題