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のように、他のファイルシステム(特に小さなファイルシステム)のスペースが急激に減少していることを確認してください。