|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
Здравствуйте! Помогите пожалуйста оптимизировать запрос. Я так понимаю что надо избавиться от ORDER BY RAND() с помощью определения максимального id... Но у меня что-то не выходит Код: sql 1. 2. 3. 4. 5. 6.
Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 07:22 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
max_1985, не много кто будет копатся в твоем коде который собирает запрос.... вытащи ТОЛЬКО запрос (уже собранный) и его давай сюда ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 10:47 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
что-то вроде Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 10:50 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
vde69, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 11:33 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
max_1985, на сколько я понимаю у тебя задача получить 8 случайных ссылок удовлетворяющих кучи условий? начни с тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 14:39 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
max_1985 Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 15:14 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
здесь не надо оптимизировать ORDER BY RAND() здесь надо оптимизироватьвесь запрос. если просто на словах - то по левой таблице делайте ORDER BY RAND() LIMIT 8 а уже потом джойните правую. Логика не изменится с ЛефтДжойн ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2020, 19:30 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
vde69 на сколько я понимаю у тебя задача получить 8 случайных ссылок удовлетворяющих кучи условий? Да Сейчас немного уменьшил запрос, т.к. время date_available не используется и номер магазина тоже вырезаю, т.к. он один и добавляться не планируется. Сейчас так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 12:44 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
miksoft max_1985 Код: sql 1. 2. 3. 4.
Задача выбрать 8 случайных товара из одной категории, товары должны быть включены и быть в наличии. Информация по наличию храниться в таблице product, а список product_id с привязкой к category_id храниться в product_to_category ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 12:52 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
Alex_Ustinov здесь не надо оптимизировать ORDER BY RAND() здесь надо оптимизироватьвесь запрос. если просто на словах - то по левой таблице делайте ORDER BY RAND() LIMIT 8 а уже потом джойните правую. Логика не изменится с ЛефтДжойн Не понял как это сделать... Сейчас так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Задача выбрать 8 случайных товара из одной категории к которой принадлежит товар что открыт. Товары должны быть включены, быть в наличии и не равняться товару который открыт. Информация по наличию храниться в таблице product, а список product_id с привязкой к category_id храниться в product_to_category ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 13:20 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
max_1985, сначал оптимизировать это Код: sql 1. 2. 3. 4. 5. 6. 7.
избавиться от IN ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 16:50 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
Alex_Ustinov избавиться от IN Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Сейчас так ) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 17:21 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
когда оптимизируют - смотрят план запроса, использование индексов лучше начинать с подзапросов, по частям. перед селект поставь EXPLAIN EXPLAIN SELECT... вот это ORDER BY RAND() LIMIT 8 можно пока выкинуть ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 20:03 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
Alex_Ustinov когда оптимизируют - смотрят план запроса, использование индексов лучше начинать с подзапросов, по частям. перед селект поставь EXPLAIN EXPLAIN SELECT... вот это ORDER BY RAND() LIMIT 8 можно пока выкинуть Что меня должно здесь насторожить? https://prnt.sc/r9xut8 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 21:08 |
|
Оптимизация запроса с ORDER BY RAND()
|
|||
---|---|---|---|
#18+
max_1985 Alex_Ustinov здесь не надо оптимизировать ORDER BY RAND() здесь надо оптимизироватьвесь запрос. если просто на словах - то по левой таблице делайте ORDER BY RAND() LIMIT 8 а уже потом джойните правую. Логика не изменится с ЛефтДжойн Не понял как это сделать... Сейчас так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Задача выбрать 8 случайных товара из одной категории к которой принадлежит товар что открыт. Товары должны быть включены, быть в наличии и не равняться товару который открыт. Информация по наличию храниться в таблице product, а список product_id с привязкой к category_id храниться в product_to_category ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2020, 21:42 |
|
|
start [/forum/topic.php?fid=47&msg=39932802&tid=1828725]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 192ms |
0 / 0 |