多个数据库同时执行同一个 SQL 文件一般都是怎么处理的?

2021-08-10 18:10:31 +08:00
 aizya

业务需要,需要同时维护几百个相同的数据库,在更新系统的时候比较痛苦,每个数据库都需要执行相同的 SQL 。

之前一直都是通过 web 页面去批量执行 sql,但是太慢了。

目前想法: 1. DBeaver 的 database task,但是每一个数据库都要建一个连接,很麻烦。 2. 使用存储过程

大家有什么方法吗? 求教。

1887 次点击
所在节点    MySQL
10 条回复
paccco
2021-08-10 18:22:30 +08:00
这个东西不是写个脚本就搞定了吗?配置拿出来~不太懂你的点在哪里~
wangbenjun5
2021-08-10 18:24:12 +08:00
都实现了 web 页面批量执行了,还能慢?莫非是串行执行的?改成并行不就行了
zoharSoul
2021-08-10 18:25:57 +08:00
这是什么魔鬼业务....
Amit
2021-08-10 18:30:21 +08:00
SAAS 系统吗,可以在管理后台加一个数据库升级功能,设置好升级语句后多个实例并行执行升级
keepeye
2021-08-10 18:32:30 +08:00
串行慢不会改成并行吗
securityCoding
2021-08-10 18:41:13 +08:00
维护一个配置表,代码并发执行不就行了么,为何如此纠结...
SSang
2021-08-10 19:05:13 +08:00
看了半天也没看明白问的是什么意思。

这种 sql 不是应该在每个服务更新的时候自己去加载的吗?一份 sql 文件每个服务启动时候去只读地挂载这个 sql,然后执行。

页面批量执行 sql 太慢?先弄明白为什么慢吧,在哪执行跟速度没有什么必然的联系。

而且你的服务拓扑也不清楚,每个 db 一台机器?部署方式是什么?很多部署方式都有初始化执行 sql 的方式。
aizya
2021-08-10 19:13:15 +08:00
@Amit 是的 ,谢谢
jack778
2021-08-10 19:47:54 +08:00
看样子你们真是硬核的 saas 系统,真正实现了数据隔离
jack778
2021-08-10 19:50:45 +08:00
后台起一个服务,接收更新 sql 语句的请求,执行前和执行结束后都记录日志,然后再用你的管理中心广播这个更新 sql

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX