Задавайте вопросы, мы ответим
Вы не зашли.
Есть такой запрос
SELECT * FROM `net_country_ip`
WHERE 2994698607 BETWEEN `begin_ip` AND `end_ip`
LIMIT 1
и его аналог
SELECT * FROM `net_country_ip`
WHERE `begin_ip` <= 2994698607 && 2994698607 <= `end_ip`
LIMIT 1
`net_country_ip` содержит 243,210 записей( MyISAM utf8_general_ci ) формата
country_id (AI - INT)| begin_ip(INDEX - INT) | end_ip(INDEX - INT)
Выполняет запрос за огромные 0.1529 сек. Как это можно ускорить или оптимизировать и где ошибка (шибко долго выполняет)...
Неактивен
Пока думаю... Додумал => Разбить на два запроса с LIMIT 1 => ускорение до 0.0007 Х 2 сек
Неактивен
SELECT `name_ru` FROM
(
SELECT * FROM `net_country_ip`
LEFT JOIN `net_country` USING (`country_id`)
WHERE `begin_ip` <= 2994698607
ORDER BY `begin_ip` DESC
LIMIT 1
) AS t
WHERE `end_ip` >= 2994698607
Строк больше - скорость ниже (запрос занял 0.0014 сек.)
Куда уже быстрее...
Неактивен