原来都没注册一直默默刷帖.. 今天遇到了解决不了的问题来求助大神
第一次发帖如果有没说清楚的地方麻烦指出来楼下会补充编辑
新手初级 PHP 程序员遇到了效率问题
需求:
有一个源数据库为 A 库 若干个需要插入数据的数据库统称为 B 库 最少 100 个这样子
现在需要从 A 库取数据插入 B 库,每个 B 库每天从 A 库取 1000 条进行插入操作
也就是循环 100 次脚本 每次往 B 库插入 1000 条
脚本是在本地跑 写完了之后测试脚本往本地的一个数据库插入数据要 15S 左右 后期数据累计多了 20S 左右
但是今天实际往生产数据库插入数据测试了一下跑一个库要 15min 左右,后期数据多了肯定会更慢
时间完全不能接受,这样算下来跑 100 个库就起码要 24 小时了
插入数据不是简单的数据取出来就插进去就算了 有验证重复的过程 主表插入数据 其他表也会插入相关数据
本来是验证最花时间 现在验证过程已经经过处理了 跑一次 B 库只会和 B 库做一次数据交互
所以效率影响基本可以忽略不计 主要是插入数据时候影响的效率
数据是单条插入 因为主数据插入后获得主键用来后面修改数据以及插入其他表数据
用事务批量插入的话不可行
求 V2 的程序员给给调整意见 有需要补充信息的话会在下面补充
说升级服务器或者修改表结构之类的就算了.. 我没那么高权限 我能做的就是尽力去实现领导需求
1
2ME OP 目前有个想法是插入到本地数据库把数据库 然后读 B 库的最后一个 ID 再把本地数据库的读出来 循环赋值主键 然后用事务插入 B 库 不知道是否可行
|
2
2ME OP 好像忘了说 数据库服务器在美帝 - -
|
3
chouchangcn 2017-05-26 15:43:11 +08:00
异地读数据当然是网络延迟的原因。。。
|
4
2ME OP @chouchangcn = = 我是本地读数据存到异地数据库
|
5
chouchangcn 2017-05-28 09:53:18 +08:00
@2ME 你这每次建立数据库的链接不需要时间么。。自己分析看看嘛。。
|