Size: a a a

2020 April 24

A

Alexey in ru_mysql
источник

A

Alexey in ru_mysql
Отображение строк 0 - 24 (31445 всего, Запрос занял 2.5447 сек.)
SELECT MAX(id) as id, item_id FROM comments WHERE stat=1 GROUP BY item_id ORDER BY id DESC
источник

A

Alexey in ru_mysql
то же самое но без where:
Отображение строк 0 - 24 (31446 всего, Запрос занял 0.2043 сек.)
SELECT MAX(id) as id, item_id FROM comments GROUP BY item_id ORDER BY id DESC
источник

MN

Max N. in ru_mysql
Не селективный индекс, это не оч :)
источник

A

Alexey in ru_mysql
Max N.
Не селективный индекс, это не оч :)
можно как то поправить?
источник

СШ

Слышал Шорохи in ru_mysql
привет. подскажите есть ли в мускуле set noexec on ? нужно чекать запрос на валидность
источник

ПД

Павлов Дмитрий in ru_mysql
если в базе хранЯтся прайсЫ с ценами и количеством, порядка  100000 записей
есть ли смысл хранить в базе различные вычисляемые  суммы /итоги/подитоги или лучше вычислять каждый раз при выводе таблицы пользователю на десктоп?
источник

A

Alexander in ru_mysql
Павлов Дмитрий
если в базе хранЯтся прайсЫ с ценами и количеством, порядка  100000 записей
есть ли смысл хранить в базе различные вычисляемые  суммы /итоги/подитоги или лучше вычислять каждый раз при выводе таблицы пользователю на десктоп?
вычислять каждый раз
источник

ПД

Павлов Дмитрий in ru_mysql
👌🏻
источник

СШ

Слышал Шорохи in ru_mysql
вообще не понимаю как проверять синтаксис запроса без сервера. 🤔
источник

А

Александр in ru_mysql
Alexey
допустим за день написали 10 коментариев к одному товару, я на главной странице хочу показывать только последний. и так для 20 разных товаров
вот правильный запрос
WITH d AS (
 SELECT 1 id, 'comment10' comment, 1 item_id
 UNION ALL SELECT 2, 'comment1', 1 val
 UNION ALL SELECT 3, 'comment3', 2 val
 UNION ALL SELECT 4, 'comment4', 2 val
)
, t AS (
 SELECT id, comment, item_id
 , ROW_NUMBER() OVER (PARTITION BY item_id ORDER BY id DESC) rn
 FROM d
)
SELECT id, comment, item_id
FROM t
WHERE rn = 1
ORDER BY id DESC
LIMIT 20
источник

A

Alexey in ru_mysql
Александр
вот правильный запрос
WITH d AS (
 SELECT 1 id, 'comment10' comment, 1 item_id
 UNION ALL SELECT 2, 'comment1', 1 val
 UNION ALL SELECT 3, 'comment3', 2 val
 UNION ALL SELECT 4, 'comment4', 2 val
)
, t AS (
 SELECT id, comment, item_id
 , ROW_NUMBER() OVER (PARTITION BY item_id ORDER BY id DESC) rn
 FROM d
)
SELECT id, comment, item_id
FROM t
WHERE rn = 1
ORDER BY id DESC
LIMIT 20
ого. сейчас буду пробовать
источник

A

Alexey in ru_mysql
спасибо
источник

А

Александр in ru_mysql
Но он будет лопатить всю таблицу, долгий
источник

А

Александр in ru_mysql
могу более быстрый написать в принципе...
источник

ls

løst søul in ru_mysql
Слышал Шорохи
привет. подскажите есть ли в мускуле set noexec on ? нужно чекать запрос на валидность
Можно делать explain, на синтаксически неверном запросе explain тоже упадет
источник

A

Alexey in ru_mysql
Александр
могу более быстрый написать в принципе...
да я тут на простом застрял:
SELECT MAX(id) as id, item_id FROM comments WHERE stat=1 GROUP BY item_id ORDER BY id DESC LIMIT 20

Запрос занял 2.6648 сек
источник

А

Александр in ru_mysql
а EXPLAIN что выдаёт?
источник

A

Alexey in ru_mysql
как добавляю WHERE stat=1  - начинает тормозить
источник

A

Alexey in ru_mysql
источник