tar*_*ras 0 php batch-processing
当我需要从上传的CVS文件更新我的db表(大约100000-500000行)时,我有批处理.通常需要20-30分钟,有时甚至更长.
什么是最好的方法?对此有什么好的做法?任何建议将不胜感激
谢谢.
从CSV导入500.000行需要30分钟?
您是否考虑过让MySQL做出艰苦的努力?有LOAD DATA INFILE,它支持处理CSV文件:
LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Run Code Online (Sandbox Code Playgroud)
如果文件的形状不正确,无法直接导入目标表,您可以预先使用PHP进行转换,或者将其加载到"临时"表中,让MySQL处理必要的转换 - 以较快者为准更方便.
作为一个额外选项,似乎有可能通过PHP的本机驱动程序(MYSQLND)异步运行MySQL查询.也许你也可以探索这个选项.它将使您能够保持快速的UI性能.