加快 MySQL 的插入速度(用於測試目的)

加快 MySQL 的插入速度(用於測試目的)

我有一些需要執行大量插入操作的軟體。在生產環境中,將會有一些嚴重的調整和測試之類的事情,但現在當我需要測試它時,我想盡可能地加快插入速度。因此我的問題是 - 有沒有一種方法可以調整 mysql,使其不執行太多磁碟 I/O,但將所有內容保留在 RAM 中並很少與磁碟同步(就像 n 秒一次那樣?)

答案1

插入延遲可以提供幫助(僅限 MyISAM),因為它允許批量插入(這正是 MyISAM 的優點)。
對錶進行分區也會有所幫助。

如果您的記憶允許(並且您所要求的),那麼您可以使用記憶表。只需確保 max_heap_table_size 和 tmp_table_size 的設定足以容納資料即可。

更棘手的是(在 Linux 上)使用 TMPFS 並將資料檔案放在那裡(使用符號連結)

答案2

看看MySQL手冊的答案這裡。要回答您的特定問題,請檢查INSERT DELAYED哪一個完全符合您的要求。您可以使用delayed_insert_limit和調整其行為delayed_queue_size

不過,如果您可以批次插入 INSERT,速度會更快;使用批次插入工具,或提供多個 VALUES 列表,例如:INSERT INTO table (column) VALUES (val1),(val2),(val3)

答案3

正如丹尼爾在他的答案的第二部分中所說 - 批量插入會給你很多。查看推介會。你的規模可能要小得多,但我想你無論如何都會發現它很有趣。

相關內容