banner

O Ubuntu 20.04 usa o MySQL8 por padrão. Que, em teoria, é até 2x mais rápido que o 5.7.

Em alguns projetos do meu trabalho, as base de dados foram criadas no 5.x. No projeto atual, executar a test suite inteira no MySQL 5.7, demora algo em torno de 6 minutos.

No MySQL8, está levando 18 minutos.

Ou seja, 3x mais lerdo!

Depois de procurar um pouco, achei um bug aberto no MySQL bug tracker, com uma configuração similar: todo mundo usando como armazenamento um SSD Samsung 970 EVO Plus m.2.

Update: No Ubuntu 22.04, que usa o MySQL 8.0.31, esse problema não occorre mais.

Solução

As soluções sugeridas no bug tracker não surtiram muito efeito: melhoraram a performance, mas ainda muito aquém do 5.7.

Mas então eu achei nos fórums do MySQL uma sugestão pra configurar o MySQL8 pra imitar o comportamento do MySQL 5.7. Teste e… deu certo!

Usando sudo, edite o arquivo /etc/mysql/mysql.conf.d/mysqld.cnf e adicione as configurações abaixo depois da seção [mysqld]:

ssl=0
default_authentication_plugin=mysql_native_password
skip_log_bin=1
character_set_server=latin1
collation_server=latin1_swedish_ci
skip-character-set-client-handshake

Salve e reinicie o MySQL com o comando sudo service mysql restart.

Problema com o mysqldump

Se você estiver tendo algum problema com o mysqldump, mais precisamente:

Got error: 2061: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection. when trying to connect

Adicione este parâmetros na linha de comando que faz a importação:

 --ssl-mode=DISABLED --get-server-public-key