大文件数据库导入技巧
导入大型SQL文件时可能遇到超时或内存问题,以下是解决方法。
phpMyAdmin导入限制:
默认上传限制通常为2MB-128MB,大文件需要调整或使用其他方法。
方法一:修改PHP配置
编辑php.ini:
- upload_max_filesize = 500M
- post_max_size = 500M
- max_execution_time = 3600
- max_input_time = 3600
- memory_limit = 512M
重启Web服务生效。
方法二:命令行导入
直接导入:
mysql -u root -p dbname < backup.sql
导入压缩文件:
- gunzip < backup.sql.gz | mysql -u root -p dbname
- zcat backup.sql.gz | mysql -u root -p dbname
方法三:分割文件导入
使用split命令分割:
split -l 10000 backup.sql part_
逐个导入分割文件:
for f in part_*; do mysql -u root -p dbname < $f; done
方法四:使用source命令
登录MySQL后:
mysql> USE dbname;
mysql> SOURCE /path/to/backup.sql;
优化导入速度:
临时禁用外键检查:
SET FOREIGN_KEY_CHECKS = 0;
-- 导入数据
SET FOREIGN_KEY_CHECKS = 1;
临时禁用索引:
ALTER TABLE tablename DISABLE KEYS;
-- 导入数据
ALTER TABLE tablename ENABLE KEYS;
使用事务批量提交:
大量INSERT时使用事务,每1000条提交一次。
导入进度查看:
pv backup.sql | mysql -u root -p dbname