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