
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.04.2015, 23:53:00
|
|||
|---|---|---|---|
|
|||
Сортировка по динамическому знаечнию |
|||
|
#18+
Добрый вечер! Задача: 0) Посмотреть сколько раз значения table1 встречаются в table2 => count 1) Отсортировать table1 по значению count Написал запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. По моему мнению индексация вряд ли поможет, т.к. сортируем по динамическому значению. Так ли это? Есть ли способы ускорения? На данный момент запрос отрабатывает за 20 минут! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.04.2015, 23:58:14
|
|||
|---|---|---|---|
Сортировка по динамическому знаечнию |
|||
|
#18+
Кириллnot, план запроса покажите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.04.2015, 01:13:10
|
|||
|---|---|---|---|
Сортировка по динамическому знаечнию |
|||
|
#18+
КириллnotДобрый вечер! Задача: 0) Посмотреть сколько раз значения table1 встречаются в table2 => count 1) Отсортировать table1 по значению count Написал запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. По моему мнению индексация вряд ли поможет, т.к. сортируем по динамическому значению. Так ли это? так. Есть ли способы ускорения? На данный момент запрос отрабатывает за 20 минут! для данного запроса нужны два индекса, по t1.`VALUE` и по t2.`PRODUCT_ID`. при этом сам group by тоже может поиметь ползу от индекса по product. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.04.2015, 14:02:43
|
|||
|---|---|---|---|
|
|||
Сортировка по динамическому знаечнию |
|||
|
#18+
miksoft, idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1SIMPLEt1ALLix_iblock_elem_props_t1_13074670Using where; Using temporary; Using filesort1SIMPLEt2refIXS_BASKETS_PRODUCT_IDIXS_BASKETS_PRODUCT_ID4bitrix.t1.IBLOCK_ELEMENT_ID7Using index ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.04.2015, 14:12:57
|
|||
|---|---|---|---|
Сортировка по динамическому знаечнию |
|||
|
#18+
Попробуйте создать индекс по t1.`VALUE` и выполнить OPTIMIZE TABLE для обоих таблиц. После этого смотрите время выполнения и план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2015, 19:49:02
|
|||
|---|---|---|---|
|
|||
Сортировка по динамическому знаечнию |
|||
|
#18+
miksoft, Спасибо! Буду пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.04.2015, 20:55:34
|
|||
|---|---|---|---|
Сортировка по динамическому знаечнию |
|||
|
#18+
Старайтесь: 1) вместо INNER JOIN использовать декарт с отбором - лучше видно происходящее; 2) для всех полей указывать алиасы таблиц. Если следовать этому, получится Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Я ещё дополнительно заменил имя столбца сортировки на его номер. Некритично. Сразу возникает вопрос - почему COUNT считаем по t.ID? Зачем привлекать лишнее поле? Гораздо разумнее считать либо поле группировки, либо количество записей. В данном случае разумнее первое - потому что тогда серверу можно использовать индекс по полю таблицы table2 как покрывающий. И по двум полям таблицы table1. Т.е. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И соответственно индексы: table1 (VALUE, IBLOCK_ELEMENT_ID) table2 (PRODUCT_ID) А вот от Using temporary; Using filesort - скорее всего не избавиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1833345]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 335ms |

| 0 / 0 |
