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