Я новичок в docker, и недавно я пытался настроить свой проект на docker. Я успешно развернул приложение на nginx и php и успешно перенес eDB в контейнер. У меня есть планы перехода с MySQL 5,7 на 8, но я заметил, что запросы на выбор намного медленнее в MySQL 8.
Mysql 5,7
DockerFile
FROM mysql:5.7.29
CMD ["mysqld"]
EXPOSE 3306
docker составить:
version: '3.5'
services:
database:
build:
context: ./database
restart: always
environment:
- MYSQL_DATABASE=dbname
- MYSQL_USER=username
- MYSQL_PASSWORD=password
- MYSQL_ROOT_PASSWORD=rootpwd
ports:
- "3306:3306"
volumes:
- /Path/to/data/folder:/var/lib/mysql
volumes:
my-datavolume_five:
Mysql8
DockerFile
FROM mysql:8.0.18
CMD ["mysqld"]
EXPOSE 3306
docker -композит
version: '3.5'
services:
database:
build:
context: ./database
restart: always
environment:
- MYSQL_DATABASE=testdb
- MYSQL_USER=user
- MYSQL_PASSWORD=pwd
- MYSQL_ROOT_PASSWORD=rootpwd
command: ['--default-authentication-plugin=mysql_native_password']
ports:
- "3306:3306"
volumes:
- /Path/to/database/folder:/var/lib/mysql
volumes:
my-datavolume:
I У меня есть пример запроса, который выполняет SELECT, и я пробовал его в нескольких сценариях ios, и он всегда оказывается медленным. Я выполнил запрос 100 раз за все время oop, и разница составляла 20 секунд.
Еще одна попытка - выполнить запрос 100 раз по уникальным идентификаторам, и разница между 15 и 20 секундами все еще была. (mysql 8 медленнее).
Я знаю, что кеш запросов базы данных больше не поддерживается, но я не уверен, имеет ли это значение во втором сценарии, где идентификаторы уникальны.
пример запроса, выполняемого в l oop с 100 идентификаторами
"select * from booking_table where account_id = '" . $id . "' and status = 'booked' and checked_in = 1 and checked_out = 0 and type in ('type_a','type_b') and cancelled = 0 and end_date > '<end_date_time>'";
Мне нужно знать, есть ли определенные настройки по умолчанию, которые я мог бы пропустить, и относится ли это к mysql config или docker config.