导读
在群里向老叶提问的正确姿势是怎样的?
我的QQ好友已超过1500人,其中至少有一半是曾经有过技术交流,或者找我帮助解决MySQL相关问题的。大致平均下来,每天约要帮忙解答2-3次问题。
对我来说,这已然成了不小的额外“工作量”。因此,并不是所有的问题我都能回复,有些是能力不够,有些则是没兴趣回答,大概只有不到1/3的问题我会正面回复。
先说下哪些是我没能力回答的吧,大概有下面这样的:
-
想和我交流MySQL源码的,不好意思,我就一运维DBA,源码方面我并不擅长,倒是可以找阿里云RDS团队或其他同行聊聊;
-
直接问我“这个SQL执行很慢,怎么优化呢”,也不好意思,只有这种一句话的问题描述,我确实没能力回答。真想获得帮助的话,可以参考下方的“提问的正确姿势”;
-
“你好,我想实现xxx功能,请问SQL该怎么写呢”,更不好意思了,写SQL还真不是我的强项,非要勉为其难让我写的话,麻烦先给我发个红包,谢谢。
有哪些是我没兴趣回答的呢?
-
发来一条消息,问“在吗”。这是被我一直诟病的最糟糕的打招呼方式,平白无故浪费别人时间。心情好的时候,我或许会回一个“你猜/hi”,不好的时候,直接关掉当没看到;
-
跟我说“老叶,能帮忙推荐一个牛一点的DBA吗,谢谢”。嗯,当然可以推荐,但麻烦您把大概要求说一下总可以吧,如果不是熟人,我的做法是直接关闭对话框;
-
“请问MySQL里xxx命令是什么用途呢”,抱歉,我不是人肉查询机,麻烦自己看手册。
那么,提问的正确姿势是什么呢?
先举几个例子吧:
Q: 这个SQL为什么很慢?
A: 这是个什么SQL呢?
Q: 这是zabbix后台的一个SQL。
……尼妹,贴一下原始SQL以及执行计划能死啊?
还是以这个SQL效率问题为例,我期望得到的回复是这样的:
-
相关表DDL长什么样,执行 SHOW CREATE TABLE 即可查看;
-
这个SQL的执行计划是怎样的,用 EXPLAIN 解析下就行了(包含完整的SQL);
-
必要的话,还可以提供SQL执行时的PROFILE结果;
另一种情况,如果是性能上存在问题的话,建议提供下面几个信息:
-
(负载较高时)在服务器上执行top后的截屏;
-
(负载较高时)运行vmstat 1 50后的截屏;
-
(负载较高时)提供PROCESSLIST根绝耗时排序后的截屏;
-
提供服务器硬件配置信息,MySQL配置文件;
上述这些信息可以打成一个压缩包发出来。
当有了上面这3个信息,相信技术群里有很多人都可以帮到你了。