Индивидуальный подход

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

Подробнее

Гарантия качеcтва

Выполнение поставленных задач в максимально короткие сроки. Надежность и высокий профессионализм. «Прозрачная» ценовая политика. Предоставление любой информации клиенту, касающейся текущей работы и расходов. Мы полностью отвечаем за качество выполненных работ и соответствие вашим желаниям.

Подробнее

Решение задач любой сложности

Для нас нет ничего невозможного! Реализация любых целей по оригинальным проектам. Все работы выполняются квалифицированными специалистами, регулярно проходящими плановое обучение и аттестацию.

Подробнее

Как ускорить выгрузку данных из 1с в Bitrix

20 июня 2017

Для более быстрой выгрузки данных на сайт с CMS Bitrix из 1c выполним несколько шагов.

В данной статье будет использоваться операционная система Ubuntu 16.04.2 LTS, MySQL 5.7.18.

Конфигурация виртуального сервера

  • 2 Core CPU
  • 8 GB RAM
  • 200 GB SSD

Процесс будет состоять из 3-х этапов

  1. Создание резервной копии
  2. Изменение параметров в конфигурации MySQL.
  3. Конвертация типа таблиц в базе данных из MyISAM в InnoDB.

1. Прежде чем приступить к изменению конфигурации и конвертации ОБЯЗАТЕЛЬНО нужно сделать резервную копию (бекап) данных, на случай если что то пойдет не так.

  • Для выгрузки базы можно использовать команду (без кавычек)

mysqldump --opt -u "Имя-пользователя-базы" –p"Пароль-пользователь-базы" " название-базы" > "копия-базы".sql-$(date "+%F")

или же использовать phpmyadmin.

  • Файл конфигурации MySQL копируем командой

cp /etc/mysql/mysql.conf.d/mysqld.cnf mysqld.cnf_copy.

В директории в которой вы находитесь появиться два файла (резервная копия файла и базы).

"копия-базы".sql-2017-06-19

mysqld.cnf_copy

2. Изменение файла конфигурации MySQL 5.7.18

Открываем файл mysqld.cnf

nano /etc/mysql/mysql.conf.d/mysqld.cnf

и добавляем следующие параметры

innodb_buffer_pool_size = 4000M # определяет размер буфера. MySQL будет хранить данные таблиц и их индексы в оперативной памяти. Чем больше параметр тем меньше будет производиться операций с диском.
innodb_buffer_pool_instances = 4 # данный параметр включает несколько экземпляров пула буферов. Четыре пула по 1000M. Параметр innodb_buffer_pool_size делится на равный объем указанных пулов.
innodb_lock_wait_timeout = 50 # время простоя (в секундах), на протяжении которого транзакция InnoDB может ожидать блокировки прежде, чем будет произведен откат.
innodb_log_file_size = 512M # размер каждого файла журнала (указывается в мегабайтах). Чем больше значение, тем меньше производится операций с диском.
innodb_log_buffer_size = 32M # размер буфера, который в InnoDB используется для записи информации файлов журналов на диск.
innodb_read_io_threads = 16 # количество потоков ввода-вывода для операций чтения в InnoDB.
innodb_write_io_threads = 16 # количество потоков ввода-вывода для операций записи в InnoDB.
innodb_io_capacity = 800 # Параметр innodb_io_capacity устанавливает верхний предел активности ввода-вывода, выполняемого фоновыми задачами InnoDB, таких как очистка страниц из пула буферов и объединение данных из буфера изменений. Предел innodb_io_capacity является общим пределом для всех экземпляров пула буферов.
innodb_flush_log_at_trx_commit = 0 # данный параметр сбрасывает буфер в лог файл независимо от транзакций
tmp_table_size = 32m # размер временных таблиц располагаемых в оперативной памяти
join_buffer_size = 2M # выделяемая память для запросов, когда объединение таблиц происходит без использования индексов.
query_cache_type = 1 # параметр отвечающий за работу кэша. (1 -ON) кэшировать все результаты, за исключением запросов SELECT SQL_NO_CACHE

Для проверки работоспособности MySQL в режиме реального времени, можно использовать следующую команду

mysqld --help --verbose --skip-networking 1>/dev/null

После выполнения команды, никаких сообщений не должно быть.

3. Конвертация типа таблиц в базе данных из MyISAM в InnoDB

  • Выгружаем базу командой (без кавычек)

mysqldump --opt -u "Имя-пользователя-базы" –p"Пароль-пользователь-базы" "название-базы" > "базы".sql

  • Далее нужно будет заменить MyISAM на InnoDB используя команду

sed 's/ENGINE=MyISAM/ENGINE=InnoDB/g' база.sql > новая-база.sql

  • Удаляем старую базу

mysqladmin -u "Имя-пользователя-базы" –p"Пароль-пользователь-базы" drop "название-базы"

  • Создаем заново базу

mysqladmin -u "Имя-пользователя-базы" –p"Пароль-пользователь-базы" create "название-базы"

  • Загружаем измененную базу

mysql -u "Имя-пользователя-базы" –p"Пароль-пользователь-базы" "название-базы" < новая-база.sql

Перезапускаем MySQL

/etc/init.d/mysql restart

Написать комментарий

Политика конфиденциальности