MariaDB / MySQL tmp表占用整个磁盘空间

时间:2017-01-18 18:09:59

标签: mysql mariadb

我们有一个大小约为4GB的数据库和一个过于复杂的视图(使用GROUP_BY,GROUP_CONCAT等),我们目前无法更改。

当我们查询该视图时,有时MariaDB 10正在创建磁盘临时文件(在/ tmp中)。文件大小超过40GB - 看起来无穷无尽。 我理解为什么会创建这些文件,但我无法理解为什么这些文件比我们拥有的所有数据都要大。

递归连接是否可能是原因? 为什么不是每次都发生,但有时只发生? (缓存大小,缓冲区?)

有什么方法可以通过配置来防止这种情况? 这种桌子有多大可以增长?

1 个答案:

答案 0 :(得分:0)

我可能通过挖掘找到了一个理由: https://www.percona.com/blog/2007/08/12/mysql-view-as-performance-troublemaker/

这是一篇旧帖子,其中包含一些由用户分享的故事的新评论。 Massimiliano Alessandri指出,在MySQL中使用VIEW导致生成的结果集被写入磁盘,然后使用GBytes数据搜索没有索引。这似乎也是我们的问题。 唯一的解决方案是不使用VIEWS。