Да у меня тут проблема есть - из-за огромного количества удалений (не апдейтов, а именно удалений) некоторые таблицы базы распухают до 30-40 гигов вместо реальных 1-2 гига. Их оптимизация процесс долгий и в данном случае бесполезный, ибо они пухнут быстрее, чем работает оптимизатор. Вот подумал может в сервисе это как-то решено уже и там есть методы. Поскольку сейчас решаю эту проблему так - раз в неделю восстанавливаю базу из дампа, это сбрасывает лишние гигабайты у таблиц, но сам метод считаю не комильфо. Поэтому ищу варианты
Копировать табличку в другую?
Думал об этом, только пока не придумал как. В ней данные меняются очень быстро. Боюсь потери
Ну вот поэтому такую задачу сложно решить в общем случае. Только вы сами знаете когда приемлемо проводить оптимизацию, чтобы не терять данные.
Понял, значит сервис mysql - это не вариант в моём случае
А вы от него магии ждали? Ну попробуйте ещё в поддержку написать, может там что предложат.
Шардировать по датам, переносить после оставшиеся данные и потом дропать старые шарды
Если бы это был не мэнэджд mysql, то как бы вы решали задачу?
Хороший вариант. Прям понятный для меня.
Не знаю. Периодически гуглю по этой теме. Но пока реального стопроцентного метода не нашёл
Ну потому, что его скорее всего нет в рамках mysql. Возможно стоит посмотреть на другие базы
Ну я нагуглил compaction. Но сказать как это отразится на перфомансе базы сложно. Как часто будет биться об локи зависит от нагрузки, схемы, размера чанка. https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html
Возможно постгрес с партиционированием подойдет. Но вообще знать бы подробности. Может там и редиса хватит 🤷♂
Ну нужны подробности
Вы сейчас натолкнули меня на мысль - сделать временную таблицу, а из неё уже писать в постоянную. Поговорю с разработчиками приложения.
Инсталятор ставит софт и ставит PostgreSQL прописывает логин postgres и порт 5432. В настройках программы только хост и имя базы можно поменять.
Ну это немного другая ветка, но: даже пароль не указать? Раз программе нужен юзер postgres, то она явно хочет чего-то того, что в managed postgres у вас сделать не получится
Обсуждают сегодня