Я пытаюсь создать новый раздел (LIST) на существующей таблице (innodb) с 30 миллионами записей. запрос выполняется почти 2 часа, и он все еще находится в состоянии «copy to tmp table». Я использовал мастер производительности percona mysql для улучшения, и я не вижу различий. На сервере нет трафика. Работает на сервере Ubuntu с 16cores, памятью 30 ГБ и SSD 300/3000 IO. похоже, что mysql не использует все ресурсы. использование памяти составляет 9 ГБ, и только 3 ядра работают на очень низкой нагрузке. Есть ли способ улучшить настройку, чтобы использовать больше ресурсов и ускорить запрос?Перегородка таблиц занимает слишком много времени с percona mysql
0
A
ответ
1
Прежде всего, PARTITION BY LIST
практически бесполезен. Почему вы думаете, что это может стоить?
Посмотрим SHOW CREATE TABLE
. Если есть много вторичных индексов, это может быть проблемой.
Сколько стоит innodb_buffer_pool_size
? Похоже, он не такой большой, как должен. (Рекомендовать около 70% от доступно RAM.)
Давайте посмотрим на SQL, который занимает так много времени. Там может быть что-то тонкое.
Хорошо, вы правы. innodb_buffer_pool_size и tmp_table_size. увеличен tmp_table_size до 128mb и innodb_buffer_pool_size до 24GB. Работает хорошо :) спасибо – user1945821