MySQL Partitioning: повышение производительности для многораздельных таблиц. Зачем?

Я реализовал тест, который проверяет постоянство операций чтения и записи в 10 различных таблицах.

У меня есть 10 потоков Java, каждый выполняет запросы только к своей таблице:

Потоки 1 выполняют операции с таблицей 1, Потоки 2 выполняют операции с таблицей 2,

Я сравнил производительность параллельного выполнения этих потоков при выполнении нескольких операций чтения в однораздельной таблице [1-10] по сравнению с производительностью одного и того же теста при разделении каждого TableX на 9 равных разделов (каждый представляет неделю измерений, всего 9 недель). данных).

Я получил интересные и не объяснимые результаты:

Производительность одной операции для одного потока в два раза выше для однораздельной таблицы, тогда как общее время всех операций для всех потоков в 5 раз быстрее для многораздельных таблиц.

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

Я не понимаю, почему это происходит, так как каждый поток выполняет операции только на своей собственной таблице???

Я использую только движок MyISAM для всех своих таблиц и разделов.

1 ответ

Решение

Ознакомьтесь с данной статьей о том, как разделы помогают улучшить производительность сервера

Как решить, следует ли использовать разбиение таблицы

а также почти тот же вопрос, на который ответил эксперт

Stackru вопрос

Другие вопросы по тегам