Size: a a a

2021 July 01

L

Libra in ru_mysql
спасибо, буду разбираться
источник
2021 July 02

ЕК

Евгений Кулиничев... in ru_mysql
Всем привет! Давно мучает вопрос, не у кого спросить, подскажите пожалуйста куда капать.
Есть вот такая таблица(см. фото), задача следующая:
Нужно составить отчет. В отчете может быть 3 записи на одну дату, каждая запись содержит сумму (sum, cash, no_cash), каждая строка это report_day и уникальный для всех 3-х записей company_type. т.е. на одну дату может быть 3 записи с company_type 0,1,2 и is_admin = 0, и 3 записи с company_type 1,2,3 и is_admin = 1.
Нужно объединить записи с is_admin 0 и 1, для одной даты и одного company_type.
В итоге на одну дату должно получаться 3 строки с разными company_type.
источник

ЕК

Евгений Кулиничев... in ru_mysql
Немного покопавшись получилось примерно так.
SELECT `id`, SUM(`sum`) as `sum`, SUM(`cash`) as `cash`, SUM(`no_cash`) as `no_cash`, `report_day`, `company_type` FROM `pay_in` WHERE `report_day` IN (SELECT DISTINCT `report_day` FROM `pay_in` WHERE 1) AND `company_type` = 0 GROUP BY `report_day`
UNION
SELECT `id`, SUM(`sum`) as `sum`, SUM(`cash`) as `cash`, SUM(`no_cash`) as `no_cash`, `report_day`, `company_type` FROM `pay_in` WHERE `report_day` IN (SELECT DISTINCT `report_day` FROM `pay_in` WHERE 1) AND `company_type` = 1 GROUP BY `report_day`
UNION
SELECT `id`, SUM(`sum`) as `sum`, SUM(`cash`) as `cash`, SUM(`no_cash`) as `no_cash`, `report_day`, `company_type` FROM `pay_in` WHERE `report_day` IN (SELECT DISTINCT `report_day` FROM `pay_in` WHERE 1) AND `company_type` = 2 GROUP BY `report_day`
источник

ЕК

Евгений Кулиничев... in ru_mysql
Я так понимаю сократить не получится!?
источник

ЕК

Евгений Кулиничев... in ru_mysql
Получится
SELECT `id`, SUM(`sum`) as `sum`, SUM(`cash`) as `cash`, SUM(`no_cash`) as `no_cash`, `report_day`, `company_type` FROM `pay_in` WHERE `report_day` IN (SELECT DISTINCT `report_day` FROM `pay_in` WHERE 1) GROUP BY `report_day`, `company_type`
источник

ЕК

Евгений Кулиничев... in ru_mysql
Всем спасибо! Вы отличная публика, помогли, как не странно:)
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
простите, у вас диск сбойнул или что?

интересно знать что бы самому на такое не нарваться
источник

L

Libra in ru_mysql
Я сделал, у нас такая специфика, что бекап нужен актуальный «ежемиллисекундный», но в датацентре было ЧП, и после у нас повредился ibdata1, без него сложно восстановить, но у нас была структура базы, и если кому интересно, алгоритм восстановления
источник

L

Libra in ru_mysql
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
правильно ли я понимаю, что реплика от такого спасёт?
источник

L

Libra in ru_mysql
Блочная репликация поможет да, логическая сомневаюсь
источник

NI

Nickolay Ihalainen in ru_mysql
спасают бекапы с верификацией (сделали бекап раз в сутки, раз в неделю востанавливаем, прогоняем селекты) + бекапы бинлогов для PITR
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
тут написали же, надо что то ежесекундное.
источник

🇻

🇻 🇱 🇦 🇩 in ru_mysql
тут я так понимаю только выход - реплика в другой дц
источник

L

Libra in ru_mysql
Ну суточный бекап для нас совсем не актуален, а вот бекапы бинлогов да, только опыта сравнения изменений не было, это по сути задача администратора, но у нас в России разработчик бэкенд за всех работает
источник

NI

Nickolay Ihalainen in ru_mysql
источник

NI

Nickolay Ihalainen in ru_mysql
для бекапов бинлогов можно использовать binlog сервер: https://github.com/google/mysql-ripple
источник

L

Libra in ru_mysql
Я так понимаю на это появилось в 5.6, а в 5.5 не было вроде
источник

NI

Nickolay Ihalainen in ru_mysql
это метод, я ещё в 4.0 использовал.
источник

L

Libra in ru_mysql
Надо будет попробовать тоже
источник