我正在开发一个需要自己的mysql表的PHP / mysql程序,我希望包含一个示例数据库用于测试/学习目的 .
我想使用PHP安装脚本自动创建mysql表并插入示例数据库 .
最新版本的mysql现在将引擎类型设置为InnoDB,我可以使用PHP成功创建mysql数据库 - 默认为InnoDB类型 .
当我尝试导入示例数据库(来自csv文件)时出现问题 - 在1800次记录中,在PHP超时之前仅导入500条记录 .
我想出了一个可能的解决方案 .
-
使用MyISAM类型创建一个mysql数据库 - 使用CREATE TABLE $ table_name ...... ENGINE = MyISAM
-
将csv文件中的记录导入MyISAM表 - 使用INSERT INTO $ table_name .......
-
最后将数据库类型从MyISAM更改为InnoDB - 使用ALTER TABLE $ table_name ENGINE = InnoDB
这个三步过程可以更快地完成,并在PHP脚本超时之前完成 .
我已经使用phpmyadmin检查了InnoDB表和数据,所有看起来都没问题 .
任何人都可以找到这种方法的错误,如果是这样,你能提供一个简单的解决方
2 回答
如果你没有做那么多工作,处理速度会更快 .
将在一步中加载整个CSV文件,而无需逐行打开每行读取解析
INSERT
.如果您需要操作任何列,那么这些步骤更通用,但仍然比您的任何一种方法快得多:
没有循环,没有OPEN,没有解析 .
这种情况发生在所有apache php和mysql安装中 . 您需要提高Apache max执行时间才能使php将大文件上传到mysql中 .
我建议你仔细研究php.ini文件,并了解它在后端的控制方式 .