Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.07.2003, 00:24
|
|||
---|---|---|---|
|
|||
поясните, а то совсем не понимаю что происходит |
|||
#18+
Есть 2 таблицы: region_streets ( region_id INT UNSIGNED NOT NULL, street_id INT UNSIGNED NOT NULL, PRIMARY KEY (region_id,street_id); И streets ( street_id INT UNSIGNED NOT NULL Auto_increment, town_id INT UNSIGNED NOT NULL, street_name varchar(128) NOT NULL, PRIMARY KEY (street_id) ); в обеих таблицах ~>2000 строк данных, Делаю запросы вида: 1) select count(*) from region_streets left join streets on (region_streets.street_id=streets.street_id) where town_id=300000; Результат: +----------+ | count(*) | +----------+ | 2118 | +----------+ 1 row in set (0.03 sec) 2) select count(*) from streets left join region_streets on (region_streets.street_id=streets.street_id) where town_id=300000; Результат: +----------+ | count(*) | +----------+ | 2118 | +----------+ 1 row in set (4.90 sec) То есть 2й запрос занимает много больше времени чем первый. Поясните пожалуйста, почему так происходит ? PS: убирание "where town_id=300000" на время не влияет Заранее благодарю ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.07.2003, 01:55
|
|||
---|---|---|---|
поясните, а то совсем не понимаю что происходит |
|||
#18+
Покажи explain обоих запросов... Хотя предварительно можно предположить, что такая беда из за того, что ты делаешь join по полю, который в индексе не стоит первым. Попробуй ради интереса сделай create index hren on region_streets(street_id); и попробуй еще раз свои запросы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&mobile=1&tid=1855899]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 161ms |
0 / 0 |