将数千条记录从单个 txt 文件导入数据库 MySQL 的更快方法?
Posted
技术标签:
【中文标题】将数千条记录从单个 txt 文件导入数据库 MySQL 的更快方法?【英文标题】:Faster way to import thousands of records from a single txt file into database MySQL? 【发布时间】:2011-04-01 03:52:49 【问题描述】:我有 50 个 txt 文件,每个文件大约有 8 列和 80,000 条记录。我在 Matlab 中编写了一个脚本,它一个一个地读取所有文件,然后使用每个文件的单个 INSERT 语句将其放入 mysql。但是这样做会花费大量时间(即使是单个文件!)。我也尝试过使用 phpmyAdmin,它说文件太大而无法上传(大约 8 MB)。因此,请提出一种解决方法,以及通常导入大型 txt 文件的理想方法是什么。另外导入 1 个这样的文件通常需要多长时间?
【问题讨论】:
【参考方案1】:您所需要的都在本手册中:http://dev.mysql.com/doc/refman/5.0/en/insert-speed.html
【讨论】:
【参考方案2】:使用LOAD DATA INFILE
语法。
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
【讨论】:
是的,加载数据似乎工作得很快。想知道为什么单次插入多条记录需要这么多时间!【参考方案3】:试试mysqlimport
myisam 的表类型也将导入更快,这取决于您是否需要事务支持 (innodb)。
【讨论】:
在插入之前启动事务并且 InnoDB 赶上 MyISAM(不要忘记在之后提交;))【参考方案4】:使用多重插入。它并不昂贵,因为您仍然只连接到 mysql 一次。然后,您可以使用循环来更新您的值(-> 您的 sql)并执行(我认为它是 mathlab 的“获取”)查询。
(例如参见http://spx.arizona.edu/Projects/Database/Accessing%20mySQL%20through%20Matlab.pdf)
【讨论】:
以上是关于将数千条记录从单个 txt 文件导入数据库 MySQL 的更快方法?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django 将数千条记录插入 SQLite 表的有效方法是啥?