0

現在、このクエリを使用して、ローカルでホストしている maxmind データベースを検索しています。

$db_result = mysql_query("select countryCode from example_table where $num BETWEEN beginIpNum AND endIpNum LIMIT 1");

ページからクエリを削除すると、読み込みがほぼ 1 秒速くなり (約 0.7 秒から 0.8 秒)、その時間を実際に使用できます。

これを改善する方法についての考えはありますか?

コードを mysqli に適合させると、速度がまったく向上しますか?

4

2 に答える 2

0

インデックス作成は、クエリ実行の速度を向上させるための最良の手法です。whereで使用される列は、結果をより速く返すためにインデックスを付ける必要があります。したがって、beginIpNumフィールドとendIpNumフィールドにそれぞれインデックスを適用します。SQLインデックスの詳細については、以下のリンク http://beginner-sql-tutorial.com/sql-index.htmを参照してください。

于 2012-08-14T18:21:14.513 に答える
0

簡単な「修正」は、適切なカバリング インデックスがあることを確認することです。

on example_table (beginIpNum, endIpNum, countryCode)

mysql コマンド ライン クライアント (または SQLYog など) を使用してデータベースに対してクエリをテストし、タイミングを調べ、SQL ステートメントがインデックス (EXPLAIN) を使用していることを確認します。

于 2012-08-14T18:28:56.397 に答える