我有一個網絡應用程序構建在nginx,fastcgi和mysql頂部的代碼點火器框架如何優化這個mysql查詢?對nginx和fastcgi
我有一個支付表。表結構是here。
在這張表中,國名,perminutecost vs是存儲在其上的近56,373條記錄。
在主頁
,有可能要求用戶輸入自己的手機號碼在
這裏是我的後端代碼來檢索我使用的自動完成功能的用戶類型perminute cost.Btw形式:
$ STR保持用戶輸入(手機號碼)
$ RET = TRUE; $ 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%,
我怎麼能改善這種算法?
謝謝。
是對自動完成正則表達式?因爲我會立即刪除它。 – Woot4Moo 2012-03-06 14:55:12
:)這是我的快速生產code.Now我正在尋找優化。 – 2012-03-06 14:56:58
你可以在用戶輸入的樣本中發帖嗎?你是否建議他們輸入'0'然後'01'然後'012'? – tristanbailey 2012-03-06 14:59:07