2011-06-29 12 views
0

検索するデータベースの範囲はx100からx1000です。中小データベース検索ソリューション

私はPDO mysqlとPHPの検索ソリューションが必要です。これは、可能な限り最高のパフォーマンスで複数のキーワード(すべて一致)とテーブル内の複数の「検索可能な」列を一致させることができます。

クエリを制限したり、PHPループを制限するなどのパフォーマンスの違いは何ですか?

このような複雑な検索は、すべてのクエリを1つのクエリでフェッチし、phpループでフィルタリングすると速くなりますが、dbがすべての結果を取得する度にパフォーマンスの問題が発生する必要があります。これは、そのような検索のために複数の照会を行う必要があること、または1つの照会で行うことができることを考慮していますか?好ましくはフルテキストで。

+0

あなたのMySQLインスタンスにSphinxエンジンをインストールできますか? –

答えて

0

PHPループによるフィルタリングは、依然として時間の大部分を無駄にします。すべてのクエリは、ディスクから切り取られ、デフォルトの外観にフォーマットされ、通信パイプに詰め込まれ、送信され、受信され、PHPデータ型に変換され、その後フィルタリングされた1000行すべてをフェッチします。

データベースは、単一レコードであろうと数十億レコードであろうと、フィルタリング用に設計されています。あなたが使っているものは、複雑かつ計算コストの高い記憶媒体です。送信された結果のサイズを小さくするためにデータベース上で行うことができることは、(たとえそれがローカルソケット接続を介しているとしても)Good Thing(tm)です。

関連する問題