atp*_*atp 2 mysql multithreading innodb fork insert
我正在尝试将大约5亿行垃圾数据插入数据库进行测试.现在我有一个PHP脚本循环遍历一些SELECT/INSERT
语句TRANSACTION
- 显然这不是最好的解决方案.表是InnoDB(行级锁定).
我想知道我(正确)分叉过程,这会加快这个INSERT
过程吗?按照它的速度,需要140个小时才能完成.我关心两件事:
如果INSERT
语句必须获取写锁定,那么它会使forking无用,因为多个进程不能同时写入同一个表吗?
我正在使用SELECT...LAST_INSERT_ID()
(内部TRANSACTION
).当多个进程INSERT
进入数据库时,这种逻辑是否会中断?我可以为每个fork创建一个新的数据库连接,所以我希望这可以避免这个问题.
我应该使用多少个进程?查询本身很简单,我有一个带2GB RAM的常规双核开发盒.我设置我的InnoDB使用8个线程(innodb_thread_concurrency=8
),但我不确定我是否应该使用8个进程,或者这是否是考虑匹配的正确方法.
谢谢你的帮助!