3

RDS で実行している一部のメモリ テーブルに奇妙な問題があります。これが RDS、mysql 5.1.57 に固有の問題なのか、それとも私の側のPEBKACなのかはわかりませんが、イライラする午後でした。

max_heap_table_size にどのような値を指定しても、メモリ テーブルは常に 9360878 の最大データ長でスタックします。これは、SHOW TABLE STATUS を使用し、既知の量のデータをテーブルに挿入するだけで決定されました。

RDS パラメーター グループでその値を設定しようとしました (メソッドを即時に設定しても再起動を試みました)、SET を使用してクエリ行で値を設定しようとしました。16 メガバイトから 16 ギガバイトまでのすべての値を試しましたが、max_data_length には影響しません。

また、max_temp_table_size を設定しようとしましたが、私が理解しているように、一時的ではないメモリ エンジン テーブルを使用するべきではありません。

誰かが私を正しい方向に向けることができますか? 約 150M を保持できるテーブルが必要です。

4

1 に答える 1

3

インメモリまたは一時テーブルを避ける

MySQL はメモリ内または一時テーブルをディスクに書き込まないため、これらの MySQL 機能を使用すると、ポイント イン タイム リストア RDS 機能を使用しようとすると問題が発生します。この操作は、データベースで実行された操作を再生することによって DB インスタンスを再作成できることに依存しています。この再生中に一部の操作が存在しない情報に依存している場合 (ディスクにコミットされていないため)、MySQL は起動できません。この RDS 復元操作中に MySQL の起動に失敗すると、RDS は DB インスタンスのステータスを互換性のない復元に設定します。

注: MySQL リードレプリカの作成方法の性質上、メモリ内または一時テーブルを使用すると、RDS MySQL リードレプリカの正常な作成が妨げられる場合もあります。

于 2012-07-18T18:40:48.073 に答える