LINUX.ORG.RU

Оптимальное количество партиций для большой таблицы в MySQL

 , , партиционирование


0

1

У меня есть таблица, в которой потенциально будет достатчно много данных (~10^8 строк) — что-то типа лога. У таблицы есть «группирующие» поле, на основе которого и делаются выборки. Хочу использовать стандартное MySQL партиционирование с использованием hash(группирующего поля).

MySQL позволяет до 1024 партиций. Если делать по файлу на таблице, то при большом числе таблиц если одновременно писать в разные партиции то больше flush-ей на ЖД, что по-идее может негативно сказаться на производительности.

Соответственно возникает вопрос: какое количество партиций стоит выбрать? Стоит ли вообще делать партиционирование, если одновременно будет работа со всеми партициями? (не в рамках одного запроса).

★★★

Последнее исправление: theos (всего исправлений: 1)

что-то типа лога

И сразу Nosql (на самом деле это говно только для логов и годится)

anonymous
()
Ответ на: комментарий от anonymous

И сразу Nosql

NoSQL жрет больше памяти за счет того что схема хранится в каждой ноде, что не выгодно + у него нет JOIN-ов на «словарные» таблицы и делать эти джойны руками нет ни малейшего желания. Да и много еще почему не подходит. NoSQL у меня используется в других местах.

theos ★★★
() автор топика

есть только смысл делать партиционирование по времени если mysqk так умеет (т.е. бить по временным интервалам, например, по неделям). Тебе же логи нужны будут не вечно, будешь старые удалять, партиционирование здесь может хорошо помочь.

Делать хэширование хрен пойми от чего есть смысл только в случае возможности разнесения таблиц по разным носителям и если есть понимание того, что это нужно. Т.е. если есть просадка по кол-ву обрабатываемых транзакций в ед. времени.

Если хочется сделать партиционирование лишь только потому, что хочется, то лучше ничего не делать.

mashina ★★★★★
()
Ответ на: комментарий от xpahos

разделить таблицы триггерами.

А зачем, если есть автоматическое? А если руками, то ИМХО на уровне аппликационного сервера лучше делать.

theos ★★★
() автор топика
Ответ на: комментарий от theos

ну у меня были торренты и активными были максимум пара тысяч раздач. Поэтому проще было разделить на активные и неактивные раздачи, тогда все умещалось в память.

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

ну у меня были торренты и активными были максимум пара тысяч раздач.

Такая структура данных больше на кеш похожа чем на партиционирование, понятие «активный» ведь постоянно меняется.

theos ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.