不動産リストの MySQL データベースを検索するシステムを作成中です。私はパフォーマンスを懸念しており、これを処理する方法について意見を求めていました。
最も頻繁に照会されるテーブルは「listings」テーブルで、86 列の 600,000 を超えるレコードが含まれます。この表も、リストの変更に伴い 30 分ごとに更新されます。
ほとんどすべての検索は、600k レコードの約 15k になる「アクティブ」のステータスを持つレコードに対して行われます。ただし、内部レポート用にすべての記録を保持する必要があります。また、各クエリはさまざまなパラメーター (#beds、#baths など) を検索する可能性が高いため、キャッシュが実行できない場合があります。
「アクティブ」とマークされたレコードの PK を含む 2 番目のテーブルを維持することを検討していました。リストの PK で結合されたテーブルのビューを作成します。ただし、特定の条件下では、ビューが非常に非効率になる可能性があることを私は知っています。
非アクティブなリストは頻繁に検索されず、メンテナンスが少なくて済むので、2 つのデータベースを維持することを考えました。
幸いなことに、まだ製品化されておらず、パフォーマンス テストを行う時間があります。もう1つ、これはPHPで書かれたフロントエンドを備えた専用のLinuxサーバーでホストされます. 提供された洞察は大歓迎です。