各位大佬,有个奇葩的技术问题
客户买了一套闭源的程序用于运营。MySQL 数据库用的是 CDB ,但是现在遇到一个问题:
因为那套程序对于数据库的优化明显不足,有一些很要命的慢查询拖慢整个库。于是,我们加了 2 个索引。性能问题暂时是解决了。
但是奇葩的是,这套程序会主动检测索引,然后给 DROP 掉。频繁的掉索引,我们就写了个定时任务去加索引。于是这套程序就是在不断的 add index 和 drop index, 因为刚开始频率不是很高,所以勉强能用。
但是最近每天的频率越来越高,导致不可用时间占比越来越多。到了无法忍受的地步。
我想的解决办法:给 CDB 这个用户去除索引的权限。但是程序会报错,无法运行。
现在想求教,有没有类似的中间件,可以在不修改代码的情况下,欺骗客户端,丢弃掉 drop index 的操作而不会报错?
卧槽!这真他么的是个人才
天才,是不是提速要加钱。
第一反应跟 2 楼一样 是不是等着别人跟他付费提速呢
查了下 ProxySql 和 MaxScale 可以主动拦截掉指定语句
hhhhh 神奇
不太懂但是可以搜索关键字 mysql proxy ,感觉应该可以解决你的问题
不得不说,很牛逼
同意楼上,套层 mysql proxy ,在这层 proxy 里面过滤掉 drop 索引的 SQL
使用 SQL 代理中间件(如 ProxySQL )拦截并忽略 DROP INDEX 语句
mysql 不是开源,直接改源码
哈哈哈哈哈哈哈哈哈哈哈哈哈
开眼了!
明显是要你们加钱。推荐 ProxySQL
说一个另类的方案, 类似破解软件的思路, 比如 java 写的可以用 JByteMod hook 掉判断
开眼界了
??? 开拓眼界了
频率越来越高??
无敌 哈哈哈哈哈 这是等着付费优化的
这不是很明显的付费优化点吗
命令触发器试试呢; plugin 是做 binlong 前后处理的,应该不行
写个 javaagent 改字节码
防御式编程大佬,膜拜一下
简单粗暴,把这个用户的相关权限去掉,他要是用的 root ,当我没说
断人财路如杀人父母,让客户继续花钱优化呗。
以前做手游的
还特么有这种玩法
还真有这么干的啊
单走一个 6
每天学到一个赚钱小知识
我说了权限去掉了,程序会报错。
没权限就给你报错
对方不承认有这个问题。其实我在 sql 审计中看到了相关的 sql ,由于无法看到源代码,所以没办法修改
drop 的频率越来越高?搞出这种操作就算了,难不成这个程序还加了这种云控?
mysql proxy 我看看,不知道有过滤 sql 的功能。
ProxySql 和 MaxScale 我也看看,谢谢大家。
未必需要云控。也许可以根据你部署时间或者数据量来:数据量越大,频率越高;运行时间越长,频率越高
我和客户说了这些可能性,但是供应商不承认。
如果闭源程序是 java 看看怎么 hook 掉那个 drop index ,否则就中间件代理了,把 drop index 虚假返回
一是暂时没有这个把握修改 MySql 源码;二是我们使用的是云数据库。
楼上 ProxySql 是正解。
这公司太缺德了,把公司名称爆出来给大家避避雷。
是的,我目前是想的加一层中间件来搞,最好有提供这个功能的现成的中间件。
对方小公司。暂时不报了。能解决就算了。客户不打算继续和他合作,准备换程序了
云数据库既然有审计,不能从审计规则拒绝掉么
那是事后的审计。也就是执行的 sql 记录。直接拿掉权限不给机会执行,会报错,整个程序会挂掉。
我一开始以为网上的付费优化是段子,没想到是真的=-= 求爆名字 避雷
不算缺德吧?
闭源买的是应用程序,有问题让他们改,你去改人家源码是破解行为吧
#35 承不承认不重要,你问问是不是加钱能优化。
#35 我是供应商我也不承认
1 gpt-4.5-preview request * 200 cents per such request i.imgur.com/nSQHnBY.png i.imgur…
我手上只有一个二级域名 sub.abc.com ,但我有一个 alist 和 nas 的 http 服务想通过这个二级域名进行访问,比如 sub.abc.com/alist 和…
第三方 rom 多,买一个前两年的机器,可以折腾的东西不少 别的手机第三方 rom 感觉不多,一加的多吗? 真我不准备买了 海外机器配置又低,只能在国产机器里面选了,目前看最合…