MySQL で「ERROR 114 - Table Full」が表示されるのはなぜですか?

MySQL で「ERROR 114 - Table Full」が表示されるのはなぜですか?

31,107,600 行の MySQL データベース テーブルがあります。InnoDB を使用しています。これは CentOS 7 システム上にあります。

テーブルには次の列があります:

  • id
  • タイムスタンプ
  • マック
  • データ
  • 方向
  • サイトID

インデックスを作成したいので、次のコマンドを実行します。

ALTER TABLE MY_TABLE ADD INDEX idx_my_index (mac, site_id, timestamp);

約 30 秒かかり、次のようなメッセージが表示されます。

ERROR 1114 (HY000): The table 'MY_TABLE' is full

私の MySQL は、デフォルトを使用して/var/lib/mysqlデータを保存しています。現在、そのフォルダーがあるパーティションには 12 GB の空き容量があり、データベースのサイズは 2.7 GB しかないため、私の知る限り、十分なスペースがあるはずです。

なぜこのエラーが表示されるのでしょうか? オンライン検索によると、一時テーブルを使用していて、一時テーブルのサイズ制限に達している可能性があります。それが原因でしょうか? それとも他の何かでしょうか? これを確認するにはどうすればよいですか?

答え1

ALTER TABLE ステートメントの実行中に、df を使用してすべてのファイル システムのスペース使用量を観察します。別のファイル システム (特に小さなファイル システム) のスペースが急速に減少していないかどうかを確認します (例: tmpfs に /tmp がある場合)。

関連情報