|
|
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
Добрый день. Столкнулся со следующей проблемой. Суть запроса в выборе компании по тегу/тегам. Таблица компаний имеет вид: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Таблица тегов: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Связка многие-ко-многим: Код: sql 1. 2. 3. 4. 5. 6. 7. Сам запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Так вот, когда тег один этот запрос отрабатывает за ~0.3-0.5 сек. Я заменяю вложенный запрос на inner join вида: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Этот запрос выполняется быстрее, примерно за 0.01 сек. Однако, когда тегов много ситуация становится обратной. Запрос вида: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. выполняется 0.2-0.5 сек. Запрос же вида: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. выполняется от 3 до 10 секунд. Непонятно, какой из запросов использовать и можно ли их как-то оптимизировать универсально (т.е., как для одного, так и для многих тегов)? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:50:26 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
Непонятно, что же тебе в итоге надо... ditasНепонятно, какой из запросов использовать Так все же разные запросы, какой тебе нужно, такой и используй. Времена все не заоблачно длинные. ditasи можно ли их как-то оптимизировать универсально (т.е., как для одного, так и для многих тегов)? Нельзя. Универсально оптимизировать вообще нельзя ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:53:33 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
ditas, А, если ты о замене IN на INNER JOIN -- то НЕ НАДО заменять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:56:46 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
Создайте на каждой таблице составной индекс с требуемым для выбранного типа запроса набором полей. Текущие ключи для этих запросов - не очень-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:56:46 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Время выполнения здесь критично. Поэтому я пытаюсь понять, почему же join для одного тега ускоряет запрос в 35-50 раз (до приемлемого значения), а в случае многих тегов замедляет его до совершенно неприемлемого значения. Моя задача ускорить выполнение запроса, т.к., даже "быстрый" вариант для многих тегов (0.2-0.5 сек.) не подходит, а схема с join'ами не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 15:59:45 |
|
||
|
Ускорение запроса
|
|||
|---|---|---|---|
|
#18+
ditasПоэтому я пытаюсь понять RTFM EXPLAIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2014, 17:02:49 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1834172]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 425ms |

| 0 / 0 |
