欢迎分享,转载请注明来源:内存溢出
1.用start transaction关闭mysql的自动提交,合理设置插入批量大小,不要一条数据提交一次。 2.修改表的存储引擎InnoDB为MyISAM。(因为InnoDB中存在redo log日志,每次更新表的结果先写入redo log中,等redo log满了之后再写入磁盘而这个过程是会停止其他所有的事务) 3.优化SQL(一条SQL语句插入多条数据) 4.尽量顺序插入(存储引擎底层采用的数据结构是B+tree索引,如果每次插入记录都在索引的最后面,索引的定位效率很高,并且对索引调整较小;如果插入的记录在索引中间,则需要维护B+tree并且索引定位效率会下降,数据量较大时会有频繁的磁盘 *** 作)1、没谷歌到php可以用的直接方法,不过可以获取批量插入的第一个自增id 2、假设批量插入的数据的自增ID是连续的,则可以通过第一个自增ID获取所有自增ID 3、测试批量插入的数据的自增ID是否是连续的,即插入过程中,单独插入其他数据,批量插入的自增ID是否连续 4、生成批量插入10w条数据的sql 5、navicat打开两个页面,一个是上面的sql,一个是一条单独插入的sql(这条sql的test_id,要大于上面sql里随机数的最大值,方便查看) 6、所以可以使用2中的方式获取批量插入的所有自增ID
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
mysql左连接改成右连接速度变慢
上一篇
2023-03-14
mysql大数据库备份什么软件好用?
下一篇
2023-03-14
评论列表(0条)