Size: a a a

2020 May 14

А

Александр in ru_mysql
EXPLAIN UPDATE attribute a
INNER JOIN option o ON a.option_id = o.id
INNER JOIN item i ON o.item_id = i.id
SET a.status = 0
WHERE i.restaurant_id = 776
AND a.deleted_at IS NULL
источник

MC

Mr. Crestoff in ru_mysql
Mr. Crestoff
SELECT `attribute`.`id` FROM `attribute` LEFT JOIN `option` ON `attribute`.`option_id` = `option`.`id` LEFT JOIN `item` ON `option`.`item_id` = `item`.`id` WHERE (`item`.`restaurant_id`=776) AND (`attribute`.`deleted_at` IS NULL)
это оригинал
источник

А

Александр in ru_mysql
потом
UPDATE `attribute` a
INNER JOIN `option` o ON a.option_id = o.id
INNER JOIN `item` i ON o.item_id = i.id
SET a.status = 0
WHERE i.restaurant_id = 776
AND a.deleted_at IS NULL
источник

MC

Mr. Crestoff in ru_mysql
Александр
потом
UPDATE `attribute` a
INNER JOIN `option` o ON a.option_id = o.id
INNER JOIN `item` i ON o.item_id = i.id
SET a.status = 0
WHERE i.restaurant_id = 776
AND a.deleted_at IS NULL
вот этот 0.3 сек
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
Mr. Crestoff
вот этот 0.3 сек
сколько строк affected?
источник

MC

Mr. Crestoff in ru_mysql
0
источник

MC

Mr. Crestoff in ru_mysql
так и должно быть
источник

MC

Mr. Crestoff in ru_mysql
там ничего не подходит по условиям
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
так задача решена или нет?
у вас вроде как должно быть 40к апдейтов?
источник

MC

Mr. Crestoff in ru_mysql
должно, если будет что апдейтить
источник

А

Александр in ru_mysql
напиши для теста
UPDATE `attribute` a
INNER JOIN `option` o ON a.option_id = o.id
INNER JOIN `item` i ON o.item_id = i.id
SET a.status = 1
WHERE i.restaurant_id = 776
AND a.deleted_at IS NULL
источник

MC

Mr. Crestoff in ru_mysql
источник

А

Александр in ru_mysql
SET a.status = 1
потом обратно вернёшь
SET a.status = 0
источник

MC

Mr. Crestoff in ru_mysql
я там срезал до 25к строк, чтобы быстрее тестить, но так или иначе я вижу что результат есть)
источник

MC

Mr. Crestoff in ru_mysql
или мы что-то упустили?
источник

А

Александр in ru_mysql
во, гуд 25к строк за 0,3 сек
источник

MC

Mr. Crestoff in ru_mysql
ещё мне нужны ор и энд
источник

А

Александр in ru_mysql
что и требовалось доказать, ни очереди не нужны, ни ресурсы смотреть, надо просто правильно написать MySQL'ю что ты от него хочешь
ORM это для для маленьких проектов и студентов изучающих абстракции и ООП, его лучше на помойку выкинуть, тогда и куча ресусов сервера освободится и кода будет значительно меньше
источник

MC

Mr. Crestoff in ru_mysql
Александр
что и требовалось доказать, ни очереди не нужны, ни ресурсы смотреть, надо просто правильно написать MySQL'ю что ты от него хочешь
ORM это для для маленьких проектов и студентов изучающих абстракции и ООП, его лучше на помойку выкинуть, тогда и куча ресусов сервера освободится и кода будет значительно меньше
согласен, там где требуется - использую чистые запросы без обёртки
источник

MC

Mr. Crestoff in ru_mysql
как и в этом случае придётся
источник