ジオロケーション検索システムのデータベースをテストしています。アーク距離計算を実行する前に検索を絞り込むために、既にこのような正方形ボックスの長/ラジアンインデックスシステムに組み込まれた多くの最適化があります。私の目的は、1つのテーブルから10,000,000人のユーザーにサービスを提供することです。PHPから呼び出されたクエリ内のMySQL(MariaDB)実行タイムアウト
現在、私のクエリ時間は、年齢、性別などの他の条件に基づいて0.1秒から0.01秒の間です。これは、英国全体に均等に分布する10,000,000人のユーザーのためです。私はXをすることができ、ユーザXの人々を表示する必要があるとして、
私はLIMIT条件を持っている
他のユーザ、クエリができる一致/少数のユーザーが存在しない場合、問題がある16〜40 LIMITにすばやく到達できず、400,000行をスキャンする必要があるため、長い時間がかかります。
あり、私は見ることができ、他の最適化技術であることが、私の質問がある場合があります。クエリはX秒後に放棄し取得する方法は
ありますか? 1秒以上かかると結果が返ってこないので、これが起きてうれしいです。私は遅いクエリを殺すためにcronのソリューションについて考えているが、それがある16 GIVEUP
SECOND 1の後に....... LIMITテーブルFROM
SELECTデータ:疑似クエリのコードでは、のようなものになるでしょう非常に優雅ではない。プロダクションでは数秒ごとにクエリが呼び出されるので、cronは継続的にオンにする必要があります。
提案がありますか?
- バージョンは、バージョン10.1でMariaDBを使用して
バージョンのmysql? – asurbernardo
可能な複製http://serverfault.com/questions/401828/how-to-automatically-kill-slow-mysql-queries-after-n-seconds –
バージョンは10.1.14-MariaDB – PlatformDating