|
|
|
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, 11:46 |
|
||
|
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, 12:26 |
|
||
|
join и диапазон значений
|
|||
|---|---|---|---|
|
#18+
Правильно выдает такое число строк. По explain получается что для _каждой_ записи из ip (24622 записи) надо проверить примерно 34636 записей из city.. Вот и считайте сколько записей = 24622*34636 Какая версия mysql? Случаем не 3.23 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 14:48 |
|
||
|
join и диапазон значений
|
|||
|---|---|---|---|
|
#18+
версия - 4.0.16 а понимаю, что число получается неким произведением возможных строк. я думаю вопрос сужается до: какие индексы ввести в city (geo_ip), что бы запрос диапазона '<' '>' сразу находил строку, без проверки всех? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2004, 10:05 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=683&tid=1855036]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 364ms |

| 0 / 0 |
