Приветствую всех! Есть базы данных, весит примерно 40 гб. Нужно его восстановить на свой сервер. Проблема в скорости. Там более 100 млн. строк. Сейчас 1000 строк загружается за 3-4 минуты, что очень долго. На другом форуме нашел решение, мол добавить эти значения:
innodb_buffer_pool_size = 4G
innodb_log_buffer_size = 256M
innodb_log_file_size = 1G
innodb_write_io_threads = 16
innodb_flush_log_at_trx_commit = 0
Куда я только не пробовал добавлять их, начал с пути /etc/mysql/@my.cnf (тут мне не нравится то, что у меня стоит @ перед my.cnf) просто дописал в конце этого файла [mysqld] и внизу параметры, не сработало. В этом файле содержится текст:
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
Далее прочитал на других форумах, что нужно в этом случае данные записывать в /etc/mysql/mysql.conf.d/mysqld.cnf
Также туда записал, понятное дело, что в других местах я это предварительно удалил и перезапустил службы mysql командой: sudo service mysql restart --innodb-doublewrite=0, как и предлагали на форуме, где это было решением.
Но скорость не увеличивается, так и на 1000 строк затрачивается 3-4 минуты.
Пробовал эти настройки вставлять и по пути /etc/mysql/conf.d/mysqldump.cnf, тоже ничего не происходит.
Хотя у других людей в десятки раз сокращалась время загрузки:
То есть этот способ работает, но видимо что-то я не то делаю. Тем более я знаю, что и 1 тб дампы восстанавливают, что уж говорить о 40 гб, задача решаемая.
Вопрос: куда эти параметры в итоге вставлять? Что я делаю не то?
Характеристика моей вирт. машины:
ssd - 100 гб
vcpu - 4
ram - 32
UPDATE:
Был вопрос почему именно 1000 строк:
Ответ: Я скопировал кусок дампа на 1000 строк. Там внутри команда вставки:
INSERT INTO `orders` VALUES'(что нужно вставить)
INSERT INTO `orders` VALUES'(что нужно вставить)
INSERT INTO `orders` VALUES'(что нужно вставить)
И так далее. Весь дамп это и содержит. Сами значения правильно вставляются, с этим проблем нет. Проблема только в скорости.