FAQ系列 | 提问的正确姿势

导读

在群里向老叶提问的正确姿势是怎样的?

我的QQ好友已超过1500人,其中至少有一半是曾经有过技术交流,或者找我帮助解决MySQL相关问题的。大致平均下来,每天约要帮忙解答2-3次问题。

对我来说,这已然成了不小的额外“工作量”。因此,并不是所有的问题我都能回复,有些是能力不够,有些则是没兴趣回答,大概只有不到1/3的问题我会正面回复。

先说下哪些是我没能力回答的吧,大概有下面这样的:

  1. 想和我交流MySQL源码的,不好意思,我就一运维DBA,源码方面我并不擅长,倒是可以找阿里云RDS团队或其他同行聊聊;
  2. 直接问我“这个SQL执行很慢,怎么优化呢”,也不好意思,只有这种一句话的问题描述,我确实没能力回答。真想获得帮助的话,可以参考下方的“提问的正确姿势”;
  3. “你好,我想实现xxx功能,请问SQL该怎么写呢”,更不好意思了,写SQL还真不是我的强项,非要勉为其难让我写的话,麻烦先给我发个红包,谢谢。

有哪些是我没兴趣回答的呢?

  1. 发来一条消息,问“在吗”。这是被我一直诟病的最糟糕的打招呼方式,平白无故浪费别人时间。心情好的时候,我或许会回一个“你猜/hi”,不好的时候,直接关掉当没看到;
  2. 跟我说“老叶,能帮忙推荐一个牛一点的DBA吗,谢谢”。嗯,当然可以推荐,但麻烦您把大概要求说一下总可以吧,如果不是熟人,我的做法是直接关闭对话框;
  3. “请问MySQL里xxx命令是什么用途呢”,抱歉,我不是人肉查询机,麻烦自己看手册。

那么,提问的正确姿势是什么呢?
先举几个例子吧:
Q: 这个SQL为什么很慢?
A: 这是个什么SQL呢?
Q: 这是zabbix后台的一个SQL。
……尼妹,贴一下原始SQL以及执行计划能死啊?

还是以这个SQL效率问题为例,我期望得到的回复是这样的:

  1. 相关表DDL长什么样,执行 SHOW CREATE TABLE 即可查看;
  2. 这个SQL的执行计划是怎样的,用 EXPLAIN 解析下就行了(包含完整的SQL);
  3. 必要的话,还可以提供SQL执行时的PROFILE结果;

另一种情况,如果是性能上存在问题的话,建议提供下面几个信息:

  1. (负载较高时)在服务器上执行top后的截屏;
  2. (负载较高时)运行vmstat 1 50后的截屏;
  3. (负载较高时)提供PROCESSLIST根绝耗时排序后的截屏;
  4. 提供服务器硬件配置信息,MySQL配置文件;
    上述这些信息可以打成一个压缩包发出来。

当有了上面这3个信息,相信技术群里有很多人都可以帮到你了。

 

关于MySQL的方方面面大家想了解什么,可以直接留言回复,我会从中选择一些热门话题进行分享。 同时希望大家多多转发,多一些阅读量是老叶继续努力分享的绝佳助力,谢谢大家 :)

最后打个广告,运维圈人士专属铁观音茶叶微店上线了,访问:http://yuhongli.com 获得专属优惠

 

FAQ系列 | 提问的正确姿势》上有2条评论

  1. 周星星

    请问一下,如何能知道mysql里的process id和linux os上的tid的关系,从而可以定位到哪个mysql的线程资源消耗是最高的。

  2. 叶金荣 文章作者

    用sar -u -t -p pid,就可以看到多线程模式下,每个线程的cpu消耗了。
    除非某个线程耗时特别久,否则很那抓到其和mysql process id的对应关系。

发表评论

电子邮件地址不会被公开。

Time limit is exhausted. Please reload CAPTCHA.