Какие параметры MySQL my.ini следует изменить для соединения и обновления больших таблиц? - PullRequest
1 голос
/ 27 сентября 2011

Я новичок в больших базах данных, и у меня есть следующее:

  • TableA - 20M строк
  • TableB - 500K строк

И многиезапросы, в частности следующие, занимают вечность.

UPDATE
    TableA AS A
INNER JOIN
    TableB AS B
    ON   B.Value IS NOT NULL AND A.Key=B.Key    
SET
    A.Value = B.Value
WHERE
    A.Value IS NULL;

Я знаю, что мой MySQL (MyISAM) не настроен для больших таблиц, и я уверен, что он мог бы использовать больше доступной памяти (всего 4 ГБ) илиПроцессоры (i7).Какие параметры в my.ini мне следует посмотреть?

Я начал с key_buffer_size = 1536M, потому что таблица A имеет индекс 1 ГБ.Любая помощь приветствуется.

1 Ответ

1 голос
/ 30 мая 2012

Для innodb

  • innodb_buffer_pool_size установить около 80% памяти, которую вы хотите, чтобы MySQL
  • innodb_log_file_size * innodb_log_files_in_group должно быть достаточно большим, чтобы изменения записывались на диск не чаще одного раза в секунду

Но все же проще использовать мастер настройки https://tools.percona.com/wizard

...