MySQL: невозможно увеличить innodb_buffer_pool_size, отредактировав my.ini / my.cnf - PullRequest
0 голосов
/ 17 мая 2018

Я получаю сообщение об ошибке «ОШИБКА 1206 (HY000): общее количество блокировок превышает размер таблицы блокировок» при выполнении запроса. После нескольких поисков я понимаю, что увеличение innodb_buffer_pool_size должно решить эту проблему. Однако у меня возникли некоторые проблемы с этим.

Я использую MySQL Workbench 6.3 CE и обнаружил файл с именем "... \ MySQL \ MySQL Server 5.6 \ my-default.ini". Я не могу найти файлы с именем my.ini или my.cnf. Следуя советам из ответов на другие вопросы на этом веб-сайте, я отредактировал этот файл так, чтобы часть, которая гласила

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

теперь читает

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
innodb_buffer_pool_size = 1024M

Однако, похоже, это не имеет значения для исходной ошибки и когда я запускаю

SELECT variable_value FROM information_schema.global_variables
WHERE variable_name = 'innodb_buffer_pool_size';

не имеет значения, какой размер возвращается: 263 192 576.

Я попытался создать копию my-default.ini и сохранить ее как my.ini, но это тоже не помогает.

Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 18 мая 2018

С помощью Dragonhytsts я искал информацию о подсказке без блокировок и нашел это - Любой способ выбора без блокировки в MySQL?

Затем я использовал следующий код

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
Create X as Select * from Y where Z in ('2012','2013', '2014', '2015');
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;

Что, казалось, сработало.

...