これは実際には、Singe-Table-InheritanceとTable Per Class Inheritance、および結合された継承の欠落についての議論です。前者はメソッドAに関連し、メソッドBとメソッドCの2番目は、投稿のすべてのIDを1つのテーブルに入れ、グループまたはユーザーの特定の属性を延期することです。テーブルのフルスキャンに関連する悪影響があり、テーブルを分割するアプローチにも独自の影響があります。これは、アプリケーションが投稿のリスト全体にアクセスする必要がある頻度と、特定の投稿タイプのみを取得する必要がある頻度によって異なります。考慮すべきもう1つの考慮事項は、MySQLまたはOracleデータベースで実行できるデータ分割です。これは、情報ライフサイクルの機会が与えられたテーブル内でデータを整理する方法です(どのデータにいつ、どのくらいの頻度でアクセスできるか、その一部を移動および圧縮してデータベースサイズを縮小し、データの左側にアクセスする速度を上げることができますテーブル)、これは基本的に3つの主要な手法に分割されます:範囲ベースのパーティショニング、リストベースのパーティショニング、ハッシュベースのパーティショニングテーブルサイズの縮小に関連してあまり一般的にサポートされていない他の機能は、挿入されたデータを自動的に無効にするタイムスタンプ付きの挿入を処理する機能です特定の期間が満了しました。実際に主要なアプリケーション設計の決定であり、パフォーマンスを向上させることができるのは、アプリケーションレベルでデータベースへの読み取りアクセスと書き込みアクセスを区別することです。MySQLを検討してください-バックエンド:書き込みアクセスはデータベースのパフォーマンスにとって明らかに重要であるため、読み取りアクセスはMySQLをセットアップできます-データベースに書き込むためのインスタンスとレプリカントとして別のインスタンスo fこれは読み取りアクセスの場合ですが、これは主にRDT(リアルタイムの決定)に関しても議論できます。この場合、任意の時点でのデータの絶対的な一貫性が必須です。アプリケーションとデータベースの間のレイヤーとしてオブジェクトプールを使用することもできます。 PHPの世界に存在する既存のソリューションについてはまだ知りませんが、これはアプリケーションのパフォーマンスを向上させるための手法です。 Oracle Hot Cacheは、その非常に洗練された例です。ただし、インメモリデータベース上に実装された独自のホットキャッシュを構築することも、memcacheを使用して構築することもできます。