
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.06.2004, 11:46
|
|||
|---|---|---|---|
join и диапазон значений |
|||
|
#18+
наверняка кто-нибуть уже сталкивался с этой задачей.. есть две таблицы. statistic_ip содержит интересующее нас поле IP. geo_ip - содержит три поля: первое - некий ID, второе и третье - диапазон значений. Нужно одним запросом, получить соответствие содержимого statistic_ip и ID из geo_ip скорее всего запрос должен быть: Код: plaintext 1. 2. 3. 4. 5. но этот запрос выполняется очень долго (как минимум 626 секунд - больше я не стал ждать) в чем причины такого долгого выполнения, и есть ли возможность переделать запрос, структуры таблиц, что бы решить проблему? структура statistic_ip: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. структура geo_ip: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2004, 12:26
|
|||
|---|---|---|---|
join и диапазон значений |
|||
|
#18+
explain вот что говорит: table | possible_keys | key | rows ip | | | 24622 city | first,last,firstlast | | 34636 на момент завершения процесса выполнения запроса (я так никогда и недождался нормального выплнения) лог длинных запросов (long_query_time) выдает: # Query_time: 236 Lock_time: 0 Rows_sent: 2057 Rows_examined: 55577828 огромное число строк. откуда он их берет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.06.2004, 14:48
|
|||
|---|---|---|---|
join и диапазон значений |
|||
|
#18+
Правильно выдает такое число строк. По explain получается что для _каждой_ записи из ip (24622 записи) надо проверить примерно 34636 записей из city.. Вот и считайте сколько записей = 24622*34636 Какая версия mysql? Случаем не 3.23 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2004, 10:05
|
|||
|---|---|---|---|
join и диапазон значений |
|||
|
#18+
версия - 4.0.16 а понимаю, что число получается неким произведением возможных строк. я думаю вопрос сужается до: какие индексы ввести в city (geo_ip), что бы запрос диапазона '<' '>' сразу находил строку, без проверки всех? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1855036]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
138ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 423ms |

| 0 / 0 |
