私は入力時に結果を表示するウェブページのフィールドを持っています。現在、私はこれらの結果のソースとしてサーバーに格納されているXMLファイルを使用しています。文字が入力されているときにデータベースに直接クエリを実行すると高速になりますか?これを達成する最良の方法は何ですか?ライブ検索、XMLまたはSQLの方が速いでしょうか?
MS SQL ServerでPHPとAJAXを使用しています。ありがとうございました。
私は入力時に結果を表示するウェブページのフィールドを持っています。現在、私はこれらの結果のソースとしてサーバーに格納されているXMLファイルを使用しています。文字が入力されているときにデータベースに直接クエリを実行すると高速になりますか?これを達成する最良の方法は何ですか?ライブ検索、XMLまたはSQLの方が速いでしょうか?
MS SQL ServerでPHPとAJAXを使用しています。ありがとうございました。
XMLファイルは、あなたのマシンまたは別のマシンに保存されたテキストファイルです。彼らは読まれ、解析され、書き込まれる必要があり、あなたのプログラムだけがそれを行うことができます。テキストファイルの読み込みと解析は非常に遅く、それを修正することはさらに悪いものです。
XMLファイルは、構成設定の保存と異なるシステム間でのデータの受け渡しに適していますが、データの格納と処理は確実に適切なDBMSに格納する必要があります。
これで十分です。
よりスケーラブルなソリューションは、正規化されていないテーブルを使用して結果を格納することです。 SQL Server 2014以降を使用している場合は、このためにMemory Optimizedテーブルを使用できます。
クエリを高速化するために、ネイティブにコンパイルされたストアドプロシージャを作成することもできますが、これはSQL Server 2014以降でもサポートされています。
さらに、クエリ結果のスピードアップとより多くの機能を提供できるように、検索結果全体にフルテキスト検索インデックスを作成してください。
文字ごとにデータベースを打つのは良い考えではありません。 –
XMLファイルでの検索はあまり効率的ではありませんが、小規模なウェブサイトではうまくいくでしょう。インデックスを持つテーブルは非常に高速で、はるかにスケーラブルです。 1回のキーストロークごとにリクエストを送信せずに、ユーザーが入力を停止するまで待つことで、さらに最適化することができます。 –
これをベンチマークして確かめてください。 –