mysql臨時錶太大 MySQL臨時表過大報錯

2021-10-18 11:46:35 字數 673 閱讀 1563

mysql 報如下的錯誤:error 126 (hy000): incorrect key file for table

mysql 報如下的錯誤:

error 126 (hy000): incorrect key file for table '/tmp/#sql_6613_0.myi'; try to repair it

發現其原因是臨時錶太大了,而/tmp分割槽只有2g,放不下就報錯了。

如果把中間結果自己建乙個臨時表

create temporary table tmp select ...

建出的表檔案只有100m左右,那麼為什麼/tmp中會放不下呢?

猜測mysql自己建的臨時表都是靜態行(沒有找到資料證實)。有這樣的猜測是因為如果用

create temporary table tmp row_format=fixed select ...

建表就會出現同樣的錯誤了。

所以這個問題有兩個解決方法:

1. 自己建臨時表,需要修改**,,費時。

2. 加大臨時目錄。

1.1 可以加大/tmp分割槽,

1.2 可以在啟動mysql時設定tmpdir環境變數指定另外的臨時目錄

mysql臨時表更新 MySql 臨時表

今天在專案中遇到乙個,當mysql的in語句中資料量很大時,建立乙個臨時表的例子。於是樓主整理了一下關於臨時表的知識,與大家分享一下 首先,臨時表只在當前連線可見,當關閉連線時,mysql會自動刪除表並釋放所有空間。因此在不同的連線中可以建立同名的臨時表,並且操作屬於本連線的臨時表。建立臨時表 cr...

mysql 臨時表 限制 Mysql臨時表

當你建立臨時表的時候,你可以使用temporary關鍵字。如 create temporary table tmp table name varchar 10 not null,passwd char 6 not null 或create temporary table if not exists ...

mysql怎麼是臨時表 MySQL臨時表

在本教程中,我們將討論mysql臨時表,並演示如何建立,使用和刪除臨時表。mysql臨時表簡介 在mysql中,臨時表是一種特殊型別的表,它允許您儲存乙個臨時結果集,可以在單個會話中多次重用。當使用join子句查詢需要單個select語句的資料是不可能或遇到瓶頸的時候,臨時表非常方便。在這種情況下,...