我們有一個產品,需要我們公司的職員批准後才能向數據庫表中寫入超過1000條記錄。一次寫入這些記錄的傳統方式可以是循環或MySQL批量直接插入到表中。將1000多條記錄寫入數據庫表的最有效方式
除此之外,我還有幾個表正在由CRON工作檢查,並且一次更新2000個記錄的另一個表。
我很想知道是否應該繼續進行MySQL批量插入(這是對性能的影響),還是使用像Kafka這樣的事件處理工具?
想知道您的意見。
預先感謝您。
我們有一個產品,需要我們公司的職員批准後才能向數據庫表中寫入超過1000條記錄。一次寫入這些記錄的傳統方式可以是循環或MySQL批量直接插入到表中。將1000多條記錄寫入數據庫表的最有效方式
除此之外,我還有幾個表正在由CRON工作檢查,並且一次更新2000個記錄的另一個表。
我很想知道是否應該繼續進行MySQL批量插入(這是對性能的影響),還是使用像Kafka這樣的事件處理工具?
想知道您的意見。
預先感謝您。
我感覺到了一招,可以比LOAD DATA
速度加快這,這可能是最快的...
「一旦被批准......」 - 這是否意味着你必須將數據圍坐在某處,你想「按下一個按鈕」,讓他們添加到一個特定的表?如果是這樣,...
將它們預加載到另一個表中。然後讓這個查詢準備好運行:
INSERT INTO real_table
SELECT * FROM pending_table;
但是......列是否正確排列?有沒有重複密鑰?如果是這樣,你需要更新的東西?見IODKU。等
我建議你在一天到來之前測試過程。如果失敗可能會令人尷尬。
正確。數據將放在桌子上。我們每週的一名員工將批准這些數據。它應該被推到這個新表。新表格不是初始表格的精確副本。它將更像是一個審計表,它將有較少的列但具有不同的列名。 –
千條記錄不應該花這麼長時間。你有沒有測量性能影響? – ceejayoz
我沒有測試性能比較,因爲我們沒有足夠的資源。現在的問題是,在將所有數據寫入一張表後,隨着時間的推移,閱讀也會消耗時間。想知道是否應該堅持使用MySQL或者使用nosql,因爲此表將用於讀取數據。你怎麼看? –
我認爲你會跳到不必要的優化。如果索引正確並在正確的硬件上,MySQL可以處理數十億行。對於您沒有資源來運行批量插入一次或兩次以查看需要多長時間 - 確實比採用NoSQL或添加Kafka需要更少的資源,我對此感到有點困惑。 – ceejayoz