1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

一条SQL引起的mysql宕机

小本本的故事

大家好,我是本际云服务器推荐网的小编小本本。今天我要跟大家分享一条SQL引起的MySQL宕机的案例。

一条SQL引起的mysql宕机

MySQL物化子查询的问题

MySQL引入了物化(Materialization)这一关键特性用于子查询的优化,但如果使用不当,可能会引起意想不到的后果,比如数据库宕机。

具体实现方式为:在SQL执行过程中,第一次需要子查询结果时执行子查询并将子查询的结果保存为临时表。后续对子查询结果集的访问将直接通过临时表获得。

案例分析:在MySQL-5.7.17测试环境中,业务发出一条查询SQL语句后,直接引起数据库的宕机,经查看发现这条SQL语句使用了物化子查询功能。

如何解决该问题?

启用物化子查询功能可以提升包含子查询SQL的执行效率,但也会触发一些潜在问题,比如上述的导致MySQL宕机的问题。虽然升级MySQL至5.7.23或最新版本可以避免该问题,或者关闭物化子查询功能,使SQL回退至原始的”DEPENDENTSUBQUERY“执行方式,但相应的SQL执行效率也会下降很多,特别是外层结果特别巨大时。

因此,在生产环境中,最好避免子查询的使用,才是解决该问题的王道。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5871.html