我有一個數據庫表,有成千上萬的行。輸入新行或更新行需要一點時間。要執行50次更新(格式爲update table set field = 1234 where id = 5678; update table set field = 912 where id = 582; ...
),可能需要4或5秒鐘。innoDB - 我應該關閉innodb_flush_log_at_trx_commit嗎?
我該如何減少這段時間?值得使用innodb_flush_log_at_trx_commit
設置嗎?我如何才能爲某些連接/查詢設置該設置?
與innodb_flush_log_at_trx_commit
一起玩可以安全嗎?數據並不重要,只要一個副本(或者在UPDATE
命令之前或之後)完成(它只是設置一些稍微隨機的數據更新...在這些查詢中沒有重要數據被改變)
這個表上的大部分查詢都是SELECT
,所以這就是我使用innodb的原因。
感謝
當這個事務正在完成時,這會影響讀取嗎? (順便說一下,表中有100,000行,我認爲改變這些值需要很長的時間,因爲它的索引很大,它幾乎是一個非唯一的索引(可能任何時候5%都是重複的值),id是主鍵。它的一些索引,但唯一一個'id'是「PRIMARY KEY('id'),」 – slycat
它不應該影響讀取,但它取決於很多其他因素,比如你的服務器配置使用和在同一臺服務器上同時運行的其他工作。 –