2016-05-10 63 views
0

標題說的是什麼。我正在閱讀一些舊代碼,並且有一部分數據讀入的部分,但不是直接將其寫入數據庫中,而是使用大量sql INSERT查詢創建ascii文件,並將該文件傳遞到sql -服務器。爲什麼有人會這樣做,當你可以立即執行查詢?我的理解是,這隻會傷害業績?還是有充分理由這樣做?將sql查詢寫入文件而不是執行它的技術原因?

+0

是的,它絕對傷害了表演。可能是調試數據庫查詢或測量其性能的一種方式。 – heximal

回答

1

也許我們的想法是以時間片爲基礎跟蹤數據庫的變化,還是進行預先提交備份?分佈在多個服務器上?調試也是一個很好的猜測。無論如何,有更好的方法來做這些事情。

1

可以說有三種方法可以做到的INSERTs很多:從代碼的時間

  • 一行,並且每個事務。
  • 批處理INSERT語句,每個插入至少有100行。
  • LOAD DATA INFILE ...

第一種是最慢的,最後一個是最快的。性能可能超過10倍。

但是,您所描述的內容聽起來像是一個文件,充滿了1行INSERTs。這對性能沒有幫助,但對程序員來說可能更方便。

如果這組INSERTs都是一個InnoDB事務,那麼它會在上面的第一項和第二項之間進行排名。

相關問題