Гриша К.
Новичок
Осуществление запроса к БД при помощи цикла от 50 до 300 раз. Допустимо и нормально?
Здравствуйте.
Есть функция извлечения данных (одна строка не больше 50 символов) из БД (get_country_world($countryiso)).
Есть цикл (foreach), который использует эту функцию, цикл пвоторяется в основно до 50 раз, но может быть и до 300, т.е. выполнение данной функции и соотвествующего запроса к БД осуществляется 50 раз (может быть 300).
Мне не приходилось, использовать запрос к БД, столько раз подряд, скажите пожалуйста допустимо ли такое обращение к БД, не перегрузит ли это ее, вообще используется ли запрос к БД в больших кличествах, например 50 - 300.
Все думаю оставлю так, а так нельзя, перегруз или еще что (а по другому блин никак не получается).
Просто попробовал вывести 2013 записей таким образом, т.е. обращений к БД (выполнение запроса) 2013 раз, выполнялось на домашнем компьютере 3,5 секунды (600 КБ - страница). Вроде бы могу использовать такой вариант, ну только для 50 записей (иногда до 300). Просто хочется услышать мнени опытных программситов и тогда будет споконо, а если так нельзя придется что-то придумывать.
P.S. пойду лягу спать пока.
Здравствуйте.
Есть функция извлечения данных (одна строка не больше 50 символов) из БД (get_country_world($countryiso)).
Есть цикл (foreach), который использует эту функцию, цикл пвоторяется в основно до 50 раз, но может быть и до 300, т.е. выполнение данной функции и соотвествующего запроса к БД осуществляется 50 раз (может быть 300).
Мне не приходилось, использовать запрос к БД, столько раз подряд, скажите пожалуйста допустимо ли такое обращение к БД, не перегрузит ли это ее, вообще используется ли запрос к БД в больших кличествах, например 50 - 300.
Все думаю оставлю так, а так нельзя, перегруз или еще что (а по другому блин никак не получается).
PHP:
foreach ($city_array as $key => $value) {
$countryiso = strtolower($value['countryiso']);
$worldid = strtolower(get_country_world($countryiso));
}
function get_country_world($countryiso)
{
global $lang;
$conn = db_connect();
$query = "select worldid
from countries
where countryiso = '".mysql_real_escape_string($countryiso)."'";
$result = @mysql_query($query);
if (!$result)
return false;
if (@mysql_num_rows($result) == 0)
return false;
$result = mysql_result($result, 0, 'worldid');
return $result;
}
P.S. пойду лягу спать пока.