Оптимизация выборки из базы данных

191
21 сентября 2017, 17:16

Есть две таблицы b_stat_city_ip (поля таблицы START_IP, END_IP, COUNTRY_ID, CITY_ID), b_stat_city (поля ID, COUNTRY_ID, REGION, NAME). Необходимо получить ip адрес и узнать входит ли он в диапазон значений полей START_IP, END_IP, если да, то получить его COUNTRY_ID. Далее на основании COUNTRY_ID получить значения полей REGION, NAME. Я написал следующий код, который полностью рабочий. Вопрос в том можно ли эту запись полностью оптимизировать? Если да то, как? Если нет, то почему?

$ipAddr = ip2long('какой-то ip');
$strSql = "
    SELECT
        START_IP, END_IP,
        COUNTRY_ID, CITY_ID
    FROM 
        b_stat_city_ip
    WHERE
        START_IP <= $ipAddr
    AND
        END_IP >= $ipAddr
";
$data = $DB->Query($strSql, false, $err_mess.__LINE__);
while( $arrData = $data -> Fetch() ){
    $cityID = $arrData["CITY_ID"];
}
$strSql2 = "
    SELECT
        ID, COUNTRY_ID,
        REGION, NAME            
    FROM 
        b_stat_city
    WHERE
        ID = $cityID
";
$data = $DB->Query($strSql2, false, $err_mess.__LINE__);
while( $arrData = $data -> Fetch() ){
    print_r($arrData);
}
Answer 1

Запрос переделал до такого, может кому-нибудь пригодится :)

SELECT 
    city_ip.CITY_ID, city_ip.END_IP, city_ip.COUNTRY_ID,
    stat_city.ID, stat_city.COUNTRY_ID, stat_city.REGION, stat_city.NAME
FROM 
    b_stat_city_ip AS city_ip, b_stat_city AS stat_city
WHERE 
    city_ip.START_IP <= $ipAddr AND
    city_ip.END_IP   >= $ipAddr AND 
    stat_city.ID = city_ip.CITY_ID
READ ALSO
Ускорить выборку в базу

Ускорить выборку в базу

Когда нагрузка на сайт не большая загружается за 862 s когда нагрузка большая то загружается долго , как можно ускорить запрос?

217
Хочу скачать картинку с помощью php

Хочу скачать картинку с помощью php

Нужно сделать так, чтобы он сохранял таким образом название картинки например: a50a015295b0eb1211a7a87d7f6ca1_1-fulljpg а сейчас он сохраняет не понятно каким...

270
Парсинг JSON в SQL и последующее обновление

Парсинг JSON в SQL и последующее обновление

Всем добрый деньЕсть сервис который работает с файлом в json формате

256
file_get_contents time out

file_get_contents time out

file_get_contents в какой то из версий php имеет проблему с закрытием подключений

162