各位大佬,有个奇葩的技术问题

2025 年 2 月 17 日
 ZeekChatCom

客户买了一套闭源的程序用于运营。MySQL 数据库用的是 CDB ,但是现在遇到一个问题:

因为那套程序对于数据库的优化明显不足,有一些很要命的慢查询拖慢整个库。于是,我们加了 2 个索引。性能问题暂时是解决了。

但是奇葩的是,这套程序会主动检测索引,然后给 DROP 掉。频繁的掉索引,我们就写了个定时任务去加索引。于是这套程序就是在不断的 add index 和 drop index, 因为刚开始频率不是很高,所以勉强能用。

但是最近每天的频率越来越高,导致不可用时间占比越来越多。到了无法忍受的地步。

我想的解决办法:给 CDB 这个用户去除索引的权限。但是程序会报错,无法运行。

现在想求教,有没有类似的中间件,可以在不修改代码的情况下,欺骗客户端,丢弃掉 drop index 的操作而不会报错?

10481 次点击
所在节点    MySQL
78 条回复
dddd1919
2025 年 2 月 18 日
防御式编程大佬,膜拜一下
shangfabao
2025 年 2 月 18 日
简单粗暴,把这个用户的相关权限去掉,他要是用的 root ,当我没说
xclimbing
2025 年 2 月 18 日
断人财路如杀人父母,让客户继续花钱优化呗。
wheat0r
2025 年 2 月 18 日
以前做手游的
tars13344
2025 年 2 月 18 日
还特么有这种玩法
pkoukk
2025 年 2 月 18 日
还真有这么干的啊
Eathein
2025 年 2 月 18 日
单走一个 6
MoozLee
2025 年 2 月 18 日
每天学到一个赚钱小知识
ZeekChatCom
2025 年 2 月 18 日
@shangfabao 我说了权限去掉了,程序会报错。
106npo
2025 年 2 月 18 日
@shangfabao 没权限就给你报错
ZeekChatCom
2025 年 2 月 18 日
对方不承认有这个问题。其实我在 sql 审计中看到了相关的 sql ,由于无法看到源代码,所以没办法修改
HojiOShi
2025 年 2 月 18 日
drop 的频率越来越高?搞出这种操作就算了,难不成这个程序还加了这种云控?
ZeekChatCom
2025 年 2 月 18 日
mysql proxy 我看看,不知道有过滤 sql 的功能。
ProxySql 和 MaxScale 我也看看,谢谢大家。
ZeekChatCom
2025 年 2 月 18 日
@HojiOShi 未必需要云控。也许可以根据你部署时间或者数据量来:数据量越大,频率越高;运行时间越长,频率越高
ZeekChatCom
2025 年 2 月 18 日
@evan9527 我和客户说了这些可能性,但是供应商不承认。
guanzhangzhang
2025 年 2 月 18 日
如果闭源程序是 java 看看怎么 hook 掉那个 drop index ,否则就中间件代理了,把 drop index 虚假返回
ZeekChatCom
2025 年 2 月 18 日
@pagxir 一是暂时没有这个把握修改 MySql 源码;二是我们使用的是云数据库。
evan1
2025 年 2 月 18 日
楼上 ProxySql 是正解。

这公司太缺德了,把公司名称爆出来给大家避避雷。
ZeekChatCom
2025 年 2 月 18 日
@guanzhangzhang 是的,我目前是想的加一层中间件来搞,最好有提供这个功能的现成的中间件。
ZeekChatCom
2025 年 2 月 18 日
@evan1 对方小公司。暂时不报了。能解决就算了。客户不打算继续和他合作,准备换程序了

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

https://v2ex.ih06.com/t/1112124

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

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

© 2021 V2EX