慎用存储过程:一条语句引发的数据库存储100%占用

慎用存储过程:一条语句引发的数据库存储100%占用

💡 原文中文,约2000字,阅读约需5分钟。
📝

内容提要

项目中使用多级目录结构,数据库存储使用id和parentId。通过存储过程查询最顶层目录id,但临时表导致存储空间占满。监控发现mysql存储空间被占满,原因是大量临时表导致ibtmp1文件占用所有空闲空间。解决方法是备份数据库,限制ibtmp1文件大小,重启Mysql实例。建议避免使用存储过程,遇到递归/循环问题加深度控制。

🎯

关键要点

  • 项目中使用多级目录结构,数据库存储使用id和parentId。

  • 通过存储过程查询最顶层目录id,但临时表导致存储空间占满。

  • 监控发现mysql存储空间被占满,原因是大量临时表导致ibtmp1文件占用所有空闲空间。

  • 解决方法包括备份数据库、限制ibtmp1文件大小、重启Mysql实例。

  • 建议避免使用存储过程,遇到递归/循环问题时加深度控制。

➡️

继续阅读