簡體   English   中英

PHP-插入mysql多行最佳方法

[英]PHP - Insert Into mysql multiple rows best approach

好的,假設我有3個sql表和一個文本文件。 文本文件為CSV格式。 文件結構-想象每行一個數組。 值0時間戳; 標簽1的1,4,7,10值; 標簽2的2,5,8,11個值; 選項卡3的3,6,9,12值。處理到db后將數據插入的最佳方法是什么? 解決方案1. foreach行閱讀“插入到選項卡...;” 這是我目前使用的,並且需要很多時間。 解決方案2。foreach行讀取將sql語句推送到數組中,當我處理完所有行后,創建一個字符串,如“插入到tab ...;插入到tab ...;插入到tab ...;”。 並執行查詢。 文件帶有aprox。 4000行,每個表有7個值。

您應該使用批處理插入,而不是對每個語句執行一條記錄。 在您的情況下,每個表應有一個insert語句(除非給定表的記錄多於一個“ mysql數據包”中的記錄)。

請參閱: 如何在MySQL中進行批量插入

如果使用批處理插入,則應確保每個批處理插入不超過max_allowed_pa​​cket變量。

您可能還會發現索引是最大的瓶頸。 較大的插入之前禁用它們,然后重新啟用它們可能會有所幫助。 請參閱: 如何在innodb中禁用索引

最后,MySQL可以對其應用此技術 ,以實現高帶寬插入。

我認為您可以使用MYSQL語法

LOAD DATA INFILE '/path/to/file' INTO TABLE tbl_name

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM