いくつかのテストを実行することをお勧めします。両方の方法を試して、ベンチマークしてください。ハードウェア構成、サンプル データ、サンプル クエリ、データの使用方法などを共有していないため、誰も決定的な回答を提供することはできません。考慮すべき情報を次に示します。
データベースを意図したとおりに使用する
リレーショナル データベースは、データを処理するために特別に設計されています。そのままお使いください。正しく記述された場合、適切に記述されたスキーマでデータを結合すると、うまく機能します。EXPLAIN を使用してクエリを最適化できます。SLOW クエリをログに記録して、パフォーマンスを向上させることができます。データベースは何年も前から存在しており、すべてを単一のテーブルに入れることでパフォーマンスが向上したとしたら、それはインターネット上で話題になり、誰もがそうするだろうと思いませんか?
エンジンの種類
行数が増えると、挿入はどのように影響を受けますか? MyISAM または InnoDB を使用していますか? テーブルではなく行レベルのロックを取得するため、InnoDB を使用する可能性が最も高くなります。テーブルに正しいエンジン タイプを使用していることを確認してください。両方の長所と短所を理解するために必要な情報を入手してください。エンジンのタイプを間違えると、パフォーマンスが低下する可能性があります。
パーティションを使用したパフォーマンスの向上
パフォーマンスを向上させる方法を見つけます。たとえば、データセットが大きくなるにつれて、データを分割できます。データ パーティショニングは、データのスライスを別々のパーティションに保持することで、大規模なデータセットのパフォーマンスを向上させ、すべての情報ではなく大規模なデータセットの一部に対してクエリを実行できるようにします。
正しい列タイプを使用する
移植性と将来の拡張のために、UUID プライマリ キーの使用を検討してください。適切な列タイプを使用すると、データのパフォーマンスが向上します。
データをシリアライズしない
シリアル化されたデータを使用するのは、より悪い方法です。シリアライズされたフィールドを使用する場合、基本的にデータベースをファイル管理システムとして使用しています。「ファイル」を保存して取得しますが、コードはシリアル化解除、検索、並べ替えなどを担当します。私はそのような混乱を解明するために1年を費やしました. これは、データベースの使用目的ではありません。そうするようにアドバイスする人は、悪いアドバイスをしているだけでなく、自分が何をしているのかを知りません。データベースでシリアル化されたデータを使用する状況はほとんどありません。
結論
最後に、最終決定を下さなければなりません。データを保存する方法の長所と短所について十分な情報と教育を受けていることを確認してください. 最後のアドバイスは、mysql のヘビー ユーザーが何をしているかを調べることです。単一のテーブルにデータを格納していると思いますか? それとも、リレーショナル モデルを構築し、設計どおりに使用するのでしょうか?
あなたが「すべてを 1 つのテーブルにまとめるつもりだ」と言うとき、あなたはパフォーマンスについてよく知っており、MySQL を常に最適化するために MySQL に取り組んでいる開発者チームよりも優れたコードの最適化の選択を行うことができると言っているのです。は今日です。MySQL チームと、MySQL を毎日使用する DBA、企業、およびデータベース コミュニティのメンバーの蓄積された知識に対して、自分の知識を比較検討してください。