![]() |
1
101
有时,当临时表发生此错误时:
可能是因为
你可以用
如果它在自己的分区中并且空间不足,您可以:
(a)修改/tmp,使其分区有更多的空间(通过重新分配或移动到主分区-例如
see here
)
|
![]() |
2
20
在运行查询时检查您的mysql tmpdir可用空间(/tmp,在您的情况下),因为使用大表时,它可能会占用数百MB。这对我很有用:
|
![]() |
3
6
运行此
或者这样做:
|
![]() |
4
4
您可能会发现运行“分析表”有帮助。 我们突然在一个大表上出现了这个问题(~100M行),mysql试图用/tmp来写一个超过1GB的临时表,但失败了,因为/tmp限制在~600M。 结果发现innodb表的统计数据相当陈旧。运行“分析表…”后,更新统计信息并清除问题。通过更准确的统计,MySQL能够正确地优化查询,不再需要大的tmp文件。 我们现在定期运行“mysqlcheck-aa”,以保持所有表统计信息的新鲜性。 |
![]() |
5
3
我对一个有500K以上记录的表进行查询时遇到了这个问题。 它给了我同样类型的错误,指向/tmp目录中的一个.myi文件,这个文件在检查时很少出现。我已经在/etc/my.cnf文件中增加了堆和临时文件的大小。 查询的问题是它在结尾处确实包含了一个ORDER子句,省略了它使查询工作无误。它也有一个限制。我正试图查看表中最近的5个记录。其中包含了ORDER子句,它被阻塞并给出了错误。 发生的是mysqld创建了一个内部临时表,其中包含了巨表中的所有记录以应用该命令。 我解决这个问题的方法是应用一个额外的Where条件,将记录从大表限制到较小的集合。我很方便地有一个日期时间字段来进行筛选。 我希望这能帮助别人。 |
![]() |
6
2
在UNIX上,MySQL使用tmpdir环境变量的值作为存储临时文件的目录的路径名。如果没有设置tmpdir,mysql使用系统默认值,通常是/tmp、/var/tmp或/usr/tmp。 在Windows、Netware和OS2上,MySQL按tmpdir、temp和tmp环境变量的顺序进行检查。对于第一个被发现要设置的,MySQL使用它并且不检查剩余的。如果没有设置tmpdir、temp或tmp,mysql将使用Windows系统默认值,通常为c:\windows\temp。 如果包含临时文件目录的文件系统太小, 您可以使用--tmpdir选项mysqld来指定文件系统中有足够空间的目录。 . 在MySQL5.0中,可以将--tmpdir选项设置为以循环方式使用的多个路径的列表。在UNIX上,路径应使用冒号字符(_:_)分隔,在Windows、Netware和OS/2上,路径应使用分号字符(___)分隔。 |
![]() |
7
1
我也遇到同样的问题。 这是我的解决方案: 1。不要使用“选择*”。只需选择您需要的字段。 2。拆分查询。如果选择的字段太多,则可能导致将其拆分为某些查询。如果不想更改包含结果的变量,可以稍后对结果“array_merge()”。 在我的示例中,我将查询拆分为5个查询,然后使用PHP对其进行数组合并。 问题出在MySQL服务器上。这只是一件应用程序开发人员(比如我们)没有先例的事情。 |
![]() |
8
0
我也有类似的问题。在我自己的情况下,问题是由于不正确的所有者/权限而发生的。我只需要将数据目录的所有者更改为mysql用户,这就解决了问题。 |
![]() |
9
0
只增加文件tmp,因为mysql中没有空间用于查询…
链接引用: General error: 126 Incorrect key file for table â/tmp/#sql_254c_0.MYIâ; try to repair it [ERROR] /usr/sbin/mysqld: Incorrect key file for table '/mysqltmp/#sql_ca1a_0.MYI'; try to repair it |
![]() |
10
-1
三个表中的一个的索引键可能不正确,请尝试对所有三个表运行修复命令。 |
![]() |
11
-1
使用explain关键字可能有助于了解如何最好地优化此查询。本质上,您需要做的是尽可能快地得到尽可能小的结果集。如果您在core-username中的每一行都有一个结果集,直到最后,当您订购它时,您将面临以下风险…这个。 如果您可以单独对core_用户名进行排序,而不会出现任何问题,那么您可能需要将min()行作为子查询。 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |