我有多進程腳本插入〜30k字節數據到MySQL myisam表(ID,時間戳,數據)。 一開始一切都很快,但過了一段時間(大約20-30秒),插入時間從幾毫秒增加到1-2秒。MySQL插入性能下拉
我注意到,那時候MySQL正在向磁盤寫入數據,之後我又有了一段時間的良好表現。我嘗試將批量插入緩衝區大小設置爲不同的值,但不起作用。
有沒有辦法強制MySQL更頻繁地編寫小批量? 還是有另一種方法來保持插入速度的一個層面?
我有多進程腳本插入〜30k字節數據到MySQL myisam表(ID,時間戳,數據)。 一開始一切都很快,但過了一段時間(大約20-30秒),插入時間從幾毫秒增加到1-2秒。MySQL插入性能下拉
我注意到,那時候MySQL正在向磁盤寫入數據,之後我又有了一段時間的良好表現。我嘗試將批量插入緩衝區大小設置爲不同的值,但不起作用。
有沒有辦法強制MySQL更頻繁地編寫小批量? 還是有另一種方法來保持插入速度的一個層面?
試試這個:
LOCK TABLE table
(Do all your inserts)
UNLOCK TABLE table
這是因爲該指標可能緩慢。以上將強制MySQL在重建索引之前添加所有數據。
此外,您可以編輯/etc/my.ini設置,爲MySQL提供更多的RAM,因爲它在構建索引時似乎寫入磁盤。
或者作弊是將您的MySQL tmp目錄更改爲RAM驅動器。然後,即使它認爲正在寫入磁盤,它也會寫入內存。
不知道您的硬件設置很難準確回答。 –
MySQL配置文件中有一部分與高速緩存和緩衝區大小有關。 – Jared