官方 MySQL Docker 容器不缓存查询?

官方 MySQL Docker 容器不缓存查询?

我测试了官方的 MySQL Docker 容器(mysql:latesthttps://hub.docker.com/_/mysql/) 拥有约500-700MB的数据库。

虽然在我本地安装的 MySQL 中,这个数据库第一次执行一个特定查询大约需要 1.5 秒,但接下来的几次执行同一个查询最多需要 100 毫秒。在我的 docker 容器中,这个“查询缓存”似乎不适用。同一个查询总是需要相同的时间。

如何启用查询缓存或如何查找这些 MySQL 设置以将其应用到我的 MySQL docker?

附加信息:所讨论的查询是一个地址搜索,WHERE包括邮政编码、街道名称、门牌号、城市,我已经为这些列编制了索引,以便搜索速度更快,这已经将查询执行时间缩短了一半。

答案1

有两种方法可以解决这个问题。

1)使用你自己的配置文件将其安装到容器中

-v /my/custom_config_dir:/etc/mysql/conf.d

这会将您所有的自定义配置放入容器中的目录中。

2)传递查询缓存选项,我不确定你想启用哪一个

因此在mysql命令后面添加选项

mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_uni

相关内容