我用insert into插入,加for循环1000万次。但是笔记本操作起来太卡了。大神有更好的方法吗?
用脚本生成数据文件,以”\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函数
使用存储过程,参考
使用事务,例如每 5000 条数据作为一个事务提交,效率是不使用事务的几十上百倍。