MySQL で中規模 (100,000 エントリ) のテーブルを構築しており、速度を最適化しようとしています。エントリには、本質的にトランザクションのデータが含まれており、このデータは明らかに MySQL に保持されます。データの残りの部分は、テーブルの存続期間にわたって変更されず、テーブル形式にも適していません (つまり、一部のエントリには他のエントリに含まれないフィールドが含まれ、多くの「null」値が発生します)。さらに、この 2 番目の部分のデータの多くは繰り返されます。つまり、500 ~ 1000 の一意のデータ セットしか存在しない可能性があり、テーブル内のエントリとペアになります。
私は、データを整理する 3 つの方法を考えています。1) MySQL のすべてのデータをテーブル形式のままにします。2) 一意でないデータをシリアル化し、そのデータを単一の MySQL フィールドに保存します。3) 一意でないデータをシリアル化し、MySQL テーブル内のポインタによって参照されるハードディスク内のファイルに保存します。
私の質問は、どの形式をお勧めしますか?その理由は? データベースで多くのクエリを実行することを考えると、どちらが最速でしょうか?