扫码关注官方订阅号
我用insert into插入,加for循环1000万次。但是笔记本操作起来太卡了。大神有更好的方法吗?
认证0级讲师
用脚本生成数据文件,以"\t"或者","分割!mysql load data infile 方式通过文件导入数据!
insert into肯定是不行。。。。
在CLI模式下用PHP异步每分钟生成10000条数据插入,100分钟即可完成.
你可以换换不同的存储引擎试试,MyISAM 要比 Innodb 具有更高的插入速度,我之前测试的结果是,插入100万条数据,innodb 用了15分钟左右,而myisam用时50秒!
1.要看插入内容的,只是单纯的数字字母信息会快一点,2.其次如果数据库空中没有太多索引也会好一点3.如果mysql是在固态硬盘内,读写会更快一点4.但是最关键还是要看你内存和CPU频率
注意,应该尽量使用一条带很多values的insert 语句,而不是多条insert into其他并无特别好的办法
一千万条数据还是比较多的,可以分开几次插入,然后把每次插入的值拼成一条 sql 语句执行
分多次插入吧。用触发器。
建多张表,多线程插入,然后合并这些表。
多进程执行,建议看下pcntl_fork函数
使用存储过程,参考
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用脚本生成数据文件,以"\t"或者","分割!
mysql load data infile 方式通过文件导入数据!
insert into肯定是不行。。。。
在CLI模式下用PHP异步每分钟生成10000条数据插入,100分钟即可完成.
你可以换换不同的存储引擎试试,MyISAM 要比 Innodb 具有更高的插入速度,我之前测试的结果是,插入100万条数据,innodb 用了15分钟左右,而myisam用时50秒!
1.要看插入内容的,只是单纯的数字字母信息会快一点,
2.其次如果数据库空中没有太多索引也会好一点
3.如果mysql是在固态硬盘内,读写会更快一点
4.但是最关键还是要看你内存和CPU频率
注意,应该尽量使用一条带很多values的insert 语句,而不是多条insert into
其他并无特别好的办法
一千万条数据还是比较多的,可以分开几次插入,然后把每次插入的值拼成一条 sql 语句执行
分多次插入吧。用触发器。
建多张表,多线程插入,然后合并这些表。
多进程执行,建议看下pcntl_fork函数
使用存储过程,参考