























这是一个创建于 482 天前的主题,其中的信息可能已经有所发展或是发生改变。
客户买了一套闭源的程序用于运营。MySQL 数据库用的是 CDB ,但是现在遇到一个问题:
因为那套程序对于数据库的优化明显不足,有一些很要命的慢查询拖慢整个库。于是,我们加了 2 个索引。性能问题暂时是解决了。
但是奇葩的是,这套程序会主动检测索引,然后给 DROP 掉。频繁的掉索引,我们就写了个定时任务去加索引。于是这套程序就是在不断的 add index 和 drop index, 因为刚开始频率不是很高,所以勉强能用。
但是最近每天的频率越来越高,导致不可用时间占比越来越多。到了无法忍受的地步。
我想的解决办法:给 CDB 这个用户去除索引的权限。但是程序会报错,无法运行。
现在想求教,有没有类似的中间件,可以在不修改代码的情况下,欺骗客户端,丢弃掉 drop index 的操作而不会报错?
第 1 条附言 · 2025 年 2 月 18 日
已经通过 ProxySQL 的 Query Rewrite 功能实现了。感谢各位大佬的帮助。
INSERT INTO mysql_query_rules (rule_id, active, match_pattern, replace_pattern) VALUES (1, 1, '^DROP INDEX .* ON .*$', 'select 1');
1 37Y37 2025 年 2 月 17 日 via Android卧槽!这真他么的是个人才 |
2 evan9527 2025 年 2 月 17 日天才,是不是提速要加钱。 |
3 lwldcr 2025 年 2 月 17 日 via iPhone第一反应跟 2 楼一样 是不是等着别人跟他付费提速呢 |
4 cvbnt 2025 年 2 月 17 日 via Android查了下 ProxySql 和 MaxScale 可以主动拦截掉指定语句 |
5 lidlesseye11 2025 年 2 月 17 日hhhhh 神奇 |
7 Erroad 2025 年 2 月 17 日同意楼上,套层 mysql proxy ,在这层 proxy 里面过滤掉 drop 索引的 SQL |
8 googlefans 2025 年 2 月 17 日使用 SQL 代理中间件(如 ProxySQL )拦截并忽略 DROP INDEX 语句 |
9 pagxir 2025 年 2 月 17 日 via Androidmysql 不是开源,直接改源码 |
10 8eacekeep 2025 年 2 月 17 日哈哈哈哈哈哈哈哈哈哈哈哈哈 |
11 ocsp 2025 年 2 月 17 日开眼了! |
12 kenvix 2025 年 2 月 17 日明显是要你们加钱。推荐 ProxySQL |
13 my3157 2025 年 2 月 17 日说一个另类的方案, 类似破解软件的思路, 比如 java 写的可以用 JByteMod hook 掉判断 |
15 Int100 2025 年 2 月 17 日??? 开拓眼界了 |
16 y1y1 2025 年 2 月 18 日频率越来越高?? |
17 viking602 2025 年 2 月 18 日无敌 哈哈哈哈哈 这是等着付费优化的 |
18 layxy 2025 年 2 月 18 日这不是很明显的付费优化点吗 |
19 dododada 2025 年 2 月 18 日命令触发器试试呢; plugin 是做 binlong 前后处理的,应该不行 |
21 dddd1919 2025 年 2 月 18 日防御式编程大佬,膜拜一下 |
22 shangfabao 2025 年 2 月 18 日简单粗暴,把这个用户的相关权限去掉,他要是用的 root ,当我没说 |
23 xclimbing 2025 年 2 月 18 日断人财路如杀人父母,让客户继续花钱优化呗。 |
24 wheat0r 2025 年 2 月 18 日以前做手游的 |
26 pkoukk 2025 年 2 月 18 日还真有这么干的啊 |
27 Eathein 2025 年 2 月 18 日单走一个 6 |
28 MoozLee 2025 年 2 月 18 日每天学到一个赚钱小知识 |
31 ZeekChatCom 2025 年 2 月 18 日对方不承认有这个问题。其实我在 sql 审计中看到了相关的 sql ,由于无法看到源代码,所以没办法修改 |
32 HojiOShi 2025 年 2 月 18 日drop 的频率越来越高?搞出这种操作就算了,难不成这个程序还加了这种云控? |
33 ZeekChatCom 2025 年 2 月 18 日mysql proxy 我看看,不知道有过滤 sql 的功能。 |
36 guanzhangzhang 2025 年 2 月 18 日如果闭源程序是 java 看看怎么 hook 掉那个 drop index ,否则就中间件代理了,把 drop index 虚假返回 |
38 evan1 2025 年 2 月 18 日楼上 ProxySql 是正解。 这公司太缺德了,把公司名称爆出来给大家避避雷。 |
40 ZeekChatCom 2025 年 2 月 18 日@evan1 对方小公司。暂时不报了。能解决就算了。客户不打算继续和他合作,准备换程序了 |
41 caocong 2025 年 2 月 18 日云数据库既然有审计,不能从审计规则拒绝掉么 |
42 ZeekChatCom 2025 年 2 月 18 日@caocong 那是事后的审计。也就是执行的 sql 记录。直接拿掉权限不给机会执行,会报错,整个程序会挂掉。 |
47 evan1 2025 年 2 月 18 日@uudaoshi #44 这还不算么,要是你是甲方遇到这种乙方不恶心么。 技术能力不行导致性能有问题都好说,一分钱一分货,不行加钱找专家买更好的服务。但 op 遇到的这种是偷偷故意搞破坏啊。。 和 chatgpt 用多了就降智一样。 |
48 gxy2825 2025 年 2 月 18 日承包今日笑点 |
50 qingbu 2025 年 2 月 18 日可以用 Proxy ,把对应账号的 drop 相关的 SQL 屏蔽掉。也就是假装执行成功,其实并没有。当然如果有 Proxy 的话不用那么麻烦。把可以把主动检测索引的语句返回值,返回它想要到。这样就不会触发删索引了 |
51 guqikang 2025 年 2 月 18 日真是小刀拉屁股了 |
52 Arthit 2025 年 2 月 18 日nb |
53 kkkbbb 2025 年 2 月 18 日客户买了程序,都没有售后维护么?为啥买了别人的程序,你们去维护,我觉得这也挺奇怪的 |
54 binge921 2025 年 2 月 18 日太强了 学到了 |
55 xiangbohua 2025 年 2 月 18 日添加索引数据量大的时候挺耗时的吧,频繁这么搞,是等着付费优化呢 |
56 ZeekChatCom 2025 年 2 月 18 日已经通过 ProxySQL 的 Query Rewrite 功能实现了。感谢各位大佬的帮助。 INSERT INTO mysql_query_rules (rule_id, active, match_pattern, replace_pattern) VALUES (1, 1, '^DROP INDEX .* ON .*$', 'select 1'); |
57 clifftts 2025 年 2 月 18 日国内代码都这样写,何愁赚不到钱,35 被优化 |
58 defunct9 2025 年 2 月 18 日有始有终,好同志。 |
59 tf2 2025 年 2 月 18 日xhs 说大概率 用友 搜 技术源 ORG 搬运的。 |
60 llsquaer 2025 年 2 月 18 日思路清晰,执行可靠,他们遇到和他较真的了。没较真的那不得收一笔 |
61 kepenj 2025 年 2 月 18 日哪家产品的付费优化,op 放出些关键字吧,大伙也好避避雷。 |
63 risan 2025 年 2 月 18 日6 |
65 cando 2025 年 2 月 18 日6 |
66 Torpedo 2025 年 2 月 18 日还有自动 去索引的功能 |
67 prosgtsr 2025 年 2 月 18 日 via iPhone天秀 |
69 phinex 2025 年 2 月 18 日 via Android钱原来是这么挣得 |
71 TimPeake 2025 年 2 月 18 日太有趣了,还以为这种事儿只有段子才能看到 |
73 ajax10086 2025 年 2 月 18 日商业鬼才,公司名首字母曝一下也行 |
74 xuanbg 2025 年 2 月 19 日正常运维谁给程序 DROP 权限啊,所以 OP 可以直接去掉 DROP INDEX 的权限,然后让供应商解决报错导致程序挂掉的问题。 |
75 Mageblade 2025 年 2 月 19 日我给个思路,把相关的表改名字,然后用原来的表名建视图 |
78 adian 2025 年 2 月 19 日也只能拉黑了 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。