Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MariaDB/MySQL tmp表正在占用整个磁盘空间_Mysql_Mariadb - Fatal编程技术网

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

MariaDB/MySQL tmp表正在占用整个磁盘空间,mysql,mariadb,Mysql,Mariadb,我们有一个大约4GB大小的数据库和一个过于复杂的视图(带有GROUP_BY、GROUP_CONCAT等),我们目前无法更改 有时,当我们查询该视图时,MariaDB 10正在磁盘上创建临时文件(在/tmp中)。文件大小超过40GB——这似乎是无穷无尽的。 我理解为什么会创建这些文件,但我无法理解为什么这些文件比我们拥有的所有数据都大 有没有可能是递归连接造成的? 为什么它不是每次都发生,而是偶尔发生?(缓存大小、缓冲区?) 有没有办法通过配置来防止这种情况? 这种桌子能长多大 我可能通过挖掘找到

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

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

有没有可能是递归连接造成的? 为什么它不是每次都发生,而是偶尔发生?(缓存大小、缓冲区?)

有没有办法通过配置来防止这种情况?
这种桌子能长多大

我可能通过挖掘找到了原因:

这是一篇老帖子,上面有一些用户分享的故事的新评论。 Massimiliano Alessandri指出,在MySQL中为它们使用视图会导致生成的结果集被写入磁盘,然后在没有索引的情况下用GB的数据进行搜索。看来我们的问题也一样。
唯一的解决方案是不使用视图

还是缺少索引?或因加入…集团而导致的“充气-放气”?让我们看看其中的一个查询,以及
SHOW CREATE TABLE
。是的,我们还得到了缺失的索引:),当我们添加它们时,整个操作会减慢到不可接受的时间范围。我不确定在这种情况下显示整个查询而不显示整个数据库是否有用。它拥有一切不好的东西。在这种情况下,你所说的“膨胀-收缩”是什么意思?你添加了什么索引使事情变慢了?只是在某些字段中添加索引会加速查询,但在特定字段中,它会使查询变慢。可能是因为视图查询依赖于另一个视图查询,并且正因为如此,它在内存中创建了带有索引等的临时表……听起来像是避免
视图的另一种情况。