Я недавно обновил сайт Drupal до среды с несколькими веб-заголовками и пытаюсь настроить MySQL с движком InnoDB.Я заметил, что запросы SELECT в производственном процессе выполняются быстрее, чем в промежуточном режиме, но запросы UPDATE медленнее в производственном процессе.
- Постановка: на виртуальной машине со стеком LAMP.
- Производство: в два разавеб-головки с балансировщиком нагрузки.Выделенный сервер MySQL и второй сервер БД с горячим резервированием.
Мой системный администратор говорит мне, что задержка связана с 1) удаленным подключением к БД и 2) двоичным журналированием для репликации данных между двумя серверами БД.
Я новичок в InnoDB и многосерверной среде.Я хотел бы посмотреть, подтверждают ли выходные данные из профиля MySQL мои настройки сервера или есть ли еще место для дальнейшей оптимизации производственного сервера MySQL.
Это то, что я запускал из промежуточных и производственных баз данных.Я изменил вывод с рядом столбцов для сравнения.Обратите внимание, что запрос выполняется быстрее на производстве для всех строк в таблице, за исключением строки со статусом «конец».Является ли «конечная» фаза, в которой выполняется двоичное ведение журнала?
mysql> SET profiling = 1;
mysql> UPDATE node SET created = created + 1 WHERE nid = 100;
mysql> SHOW profile;
+----------------------+----------+------------+
| Status | Staging | Production |
+----------------------+----------+------------+
| starting | 0.000100 | 0.000037 |
| checking permissions | 0.000014 | 0.000006 |
| Opening tables | 0.000042 | 0.000017 |
| System lock | 0.000007 | 0.000004 |
| Table lock | 0.000009 | 0.000003 |
| init | 0.000076 | 0.000030 |
| Updating | 0.000062 | 0.000022 |
| end | 0.000031 | 0.002159 |
| query end | 0.000006 | 0.000003 |
| freeing items | 0.000010 | 0.000003 |
| closing tables | 0.000009 | 0.000002 |
| logging slow query | 0.000005 | 0.000001 |
| cleaning up | 0.000004 | 0.000001 |
+----------------------+----------+------------+
| Total | 0.000385 | 0.002288 |
+----------------------+----------+------------+