Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
Всем привет. Подскажите следующее.
Была таблица history в которой данные хранились с 2010го года, размер таблицы составлял 150Гб, для более эффективного процесса удаления старых данных эту таблицу я разбил на партиции, 1 партиция равна 1 неделе. Данные операции я проводил месяц назад, старую таблицу отправили в архив, а новая начала заполняться заново, часть данных перелили из старой, но не много. В итоге, в данный момент таблица снова занимает 150 гигов, хотя времени прошло немного. Неужели партицированная таблица занимает настолько больше места или причина может быть в чем то другом?
22 янв 20, 14:22    [22064399]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
miksoft
Member

Откуда:
Сообщений: 37985
teCa,

А старую таблицу как очищали?
Попробуйте сделать ей Optimize.
22 янв 20, 14:34    [22064415]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
miksoft,

В таблице нет индекса на поле время события, а очищать данные приходится как раз по этому полю. В таблице было 1.2млрд записей. Можете поподробнее, что за optimaze?
22 янв 20, 15:18    [22064468]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19999
teCa
что за optimaze?
https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html
22 янв 20, 16:17    [22064543]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
Парни, есть еще идеи? Таблица уже 210Гб, напомню, что непартицированная таблица хранившая данные за несколько лет весла 150Гб, партицированная за несколько месяцев - 210Гб.
10 фев 20, 10:25    [22076546]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19999
А партиционирование, стесняюсь спросить, по какому выражению делалось? всё вроде намекает, что по дате, и вдруг дата - не индексирована... нипанимаю.
10 фев 20, 12:53    [22076723]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
Akina,
автор
PARTITION BY RANGE ( clock)
(PARTITION p20150101 VALUES LESS THAN (1420059600) ENGINE = InnoDB,


Партицировал по полю CLOCK, вот сама структура таблицы:

автор
CREATE TABLE `history` (
`itemid` BIGINT(20) UNSIGNED NOT NULL,
`clock` INT(11) NOT NULL DEFAULT '0',
`value` DOUBLE(19,4) NULL DEFAULT NULL,
`ns` INT(11) NOT NULL DEFAULT '0',
INDEX `history_1` (`itemid`, `clock`)
)
COLLATE='utf8_bin'
10 фев 20, 14:39    [22076832]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
miksoft
Member

Откуда:
Сообщений: 37985
teCa,

А первичный ключ куда потерялся?
10 фев 20, 14:46    [22076840]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
miksoft,

Это дефолтная таблица заббикса, она содержала только данные ключи.
10 фев 20, 15:51    [22076894]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19999
1) Партиционирование может только увеличить расход дискового пространства (точнее, он гарантированно увеличится - просто иногда это может быть практически незаметно).

2) Наилучшая борьба с распуханием таблицы - вменяемый снос части данных в архив. Если это невозможно - иногда помогает оптимизация. Но на таблице с лярдом записей я бы не стал...

teCa
Таблица уже 210Гб

Навскидку расход пространства на запись для показанной структуры составляет 30 байтов на запись, и в индексе 18 байт на запись, но с учётом процента заполнения, я думаю, будет порядка 80-100 (а то и все 150) байт на запись.

Покажите SHOW TABLE STATUS IN test LIKE 'history'\G.
10 фев 20, 19:39    [22077147]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
Akina

Покажите SHOW TABLE STATUS IN test LIKE 'history'\G.


К сообщению приложен файл. Размер - 11Kb
12 фев 20, 10:56    [22078056]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
Akina
Если это невозможно - иногда помогает оптимизация. Но на таблице с лярдом записей я бы не стал...


А нельзя провести оптимизацию в рамках одной партиции?
12 фев 20, 11:03    [22078061]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19999
Ну в принципе data_free практически ниачём - 10 гиг против 160 гиг данных и 75 гиг индексов.
12 фев 20, 12:15    [22078131]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
teCa
Member

Откуда:
Сообщений: 578
Akina
Ну в принципе data_free практически ниачём - 10 гиг против 160 гиг данных и 75 гиг индексов.


Те, с оптимизацией можно даже не заморачиваться, на всю БД, после оптимизации, я смогу освободить не более этих 10Гб?
12 фев 20, 12:49    [22078180]     Ответить | Цитировать Сообщить модератору
 Re: Размер партицированной таблицы?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19999
Ну если в настройках поджать от души процент свободного пространства для расщепления - может, ещё десяточку выиграешь... а вот где проиграешь и сколько - даже гадать не возьмусь.
12 фев 20, 16:12    [22078509]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить