У меня есть веб-приложение, построенное на платформе воспламенителя кода поверх nginx, fastcgi и mysql
У меня есть таблица выплат.структура таблицы - здесь .
. В этой таблице хранятся названия стран, значения perminutecost и почти 56 373 записей.
на главной странице, естьформа, которая запрашивает у пользователя номер его мобильного телефона для получения стоимости за разрешенную стоимость. Кстати, я использую функцию автозаполнения в качестве типов пользователя в
. Вот мой внутренний код:
$ 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];
этот код позволяет мне получить постоянную стоимость с номера мобильного телефона (таблица содержит только префиксы, а не все номера мобильных телефонов)
я сделал несколькоизменения в nginx и fastcgi для расширения пределов времени ожидания
, но когда слишком много людей используют службу одновременно, использование процессора mysqld становится более 100%,
как я могу улучшить этот алгоритм?
спасибо.