2011-04-13 6 views
1

ユーザーが同じWebサイト上の他のユーザーを検索できるサイトを開発しています。mysql検索クエリとPHPやjavagriptによるページ設定

クエリが非常に長くて複雑なので、いくつかの作業を保存したいので、同じ作業をやり直す必要はありません。

私はテーブルに結果を保存することができると考えていたので、ページングを使用すると同じクエリを繰り返し実行する必要がありました。結果テーブルから結果を得ることができます。これはどうやって聞こえる?

多分もっと良い方法がありますか? PHPセッションでクエリを保存することは可能ですか?これは良いアイデアですか?また、どのような種類のページングをする必要があります、前、1、2、3、4、次のようなもの、または "フェイスブックスタイル"ここでは、ボトムウィンドウの10%。

この問題に関するご意見はありますか? :))

に関してのベスト

、 アレクサンダー

答えて

0

(必要に応じて)検索クエリを最適化するだけです。
実際、データベースは「同じ仕事をやり直す」ことを意図していました。何も間違っていません。

0

は、類似したクエリをすべてのユーザーを提出することでしょうか?その場合は、memcachedのようにキャッシュを調べるとよいでしょう。

ページネーションについては、ユーザに次のXの結果を自動的に表示させたい場合は、hereのようになります。

0

テーブルに結果を出力する必要はありません。もしあなたが本当に心配しているのであれば、ストアドプロシージャをインデックス化したり、ストアドプロシージャを実行したりすることもできます。

私は先に、ユーザが実際に要求したデータのと後ろの結果のいくつかのセットをつかむために彼らのPipeline featureを使用して、その後、DataTablesでAjaxのクエリを構築するのが好き - フィルタ、改ページ、および事前ありソート変数に基づいてフロントエンドコードに組み込まれています。クエリを広げているので、ユーザーは何時でも時間を取っていないように見えます。私はそれが数十万の結果のテーブルで非常に効果的に動作している。そして、それは非常に簡単です。