に私はnginxの、FastCGIのとMySQLこのmysqlクエリを最適化する方法は? nginxのおよびFastCGI
私は、配当テーブルを持っているの上にコードイグナイタフレームワーク上に構築されたWebアプリケーションを持っています。テーブル構造はhereです。
この表では、国名、perminutecost対が格納されており、その上に約56,373レコードが格納されています。メインページで
、ここ
に私は、ユーザーの種類としてオートコンプリート機能を使用していますperminute cost.Btwを取得するために彼の携帯電話番号を入力するようにユーザーに要求したフォームは、私のバックエンドのコードがあるされています。
$ strのは、ユーザの入力(携帯電話番号)
$ RET =真を保持しています。 $ count = 3;
while($ret){
$sub = substr($str,0,$count); //9053
$ret = R::getAll("SELECT Destination,PerMinuteCost FROM `payout` WHERE `Prefix` REGEXP '^$sub(.)*$' LIMIT 0 , 30");
$count++;
}
$sub = substr($str,0,$count-2);
$ret = R::getAll("SELECT Destination,PerMinuteCost FROM `payout` WHERE `Prefix` REGEXP '^$sub(.)*$' LIMIT 0 , 30");
return $ret[0];
このコードは、私は携帯電話の番号からperminutecost取得することができます。(表だけでなく、すべての携帯電話番号を接頭辞保持している)私はnginxのおよびFastCGIにいくつかの変更がタイムアウト制限
を拡張することでした
が、あまりにも多くの人々が同時にサービスを使用し、mysqldのCPU使用率が100%以上を取得している、
どのように私はこのアルゴリズムを改善するだろうか?
ありがとうございました。
は、オートコンプリートのためREGEXですか?私はすぐにそれを削除するので。 – Woot4Moo
:)これは私の高速生産コードです。今私は最適化を探しています。 –
ユーザーが入力するサンプルを投稿できますか?彼らは '01'、次に '012'とタイプすることを提案していますか? – tristanbailey