我有一個約64個子進程的並行進程,每個子進程都需要將數據插入到登陸表中。我目前使用MySQL MyISAM引擎,並且在插入之前和之後禁用鍵。將數據並行插入MySQL的更快方法
但是,這似乎是我的過程中的一個巨大瓶頸。我相信每個插入MySQL都是表鎖,所以進程一直在等待寫入。
插入是獨立的,沒有衝突插入的危險。這也不需要交易或任何此類性質。
是否有不同的引擎或方法來提高MySQL的插入/寫入性能?
我曾經想過實例化一個表中的每個過程,但是這會使代碼更復雜,那不是我的風格....
任何建議,將不勝感激。
謝謝!
是的,我在想這個,但我擔心的是處理機器和服務器是同一臺機器。當使用Insert Delayed時,MySQL究竟在哪裏保存數據? RAM,SWAP,磁盤?我已經非常接近RAM限制已經與處理兒童... 謝謝! – user1459544
@ user1459544:「排隊的行只保存在內存中,直到它們被插入到表中。」 - 當然,O/S將根據需要交換到虛擬內存 - 但如果內存不足,這可能值得投資一些。 – eggyal
我認爲在256GB的這臺機器是挖掘,但讓我們一起去,我會讓你知道它是如何結果。也許如果它可以更快地進入數據庫,我的孩子們將會更快地釋放他們的RAM資源,併爲所有人帶來好時光。 – user1459544