MySQL有一个OPTIMIZE TABLE命令,可用于回收MySQL安装中未使用的空间.有没有办法(内置命令或公共存储过程)为数据库和/或服务器安装中的每个表运行此优化,或者这是您必须自己编写脚本的东西?
我在docker-container上运行php应用程序.当我连接到本地数据库时,响应非常快(<1秒).当我连接到外部数据库(在谷歌云或亚马逊aws上运行)时,性能非常慢(> 35秒).
我尝试过使用谷歌的DNS,如我发现的一些链接所描述但没有运气.我的DNS解析在docker容器内非常快,并且连接到Google Cloud SQL DB我直接使用IP地址.
我已经检查了在EC2实例内部运行的docker容器内运行的这个链接Web服务器响应非常慢,这个Docker减慢了非本地数据库访问速度.这似乎是相关的,但不确定.
我认为这是一个Docker问题,或者与容器有些相关,因为在其他应用程序上使用相同的远程数据库(在google cloud和aws上)并且速度非常快.在我看来,它与容器内的网络有关.
所以,总结一下我用于测试的场景(DB内容完全相同):
1)在我的Mac上作为Localhost在Docker容器中运行我的应用程序:
2)在我的应用程序在Docker容器内运行的Google Compute Engine上:
3)在我的应用程序在Docker中运行的自定义Google应用程序引擎flex环境中:
4)在PHP Google应用程序引擎flex环境中:
5)我的应用程序在Google Compute Engine实例(PHP + apache)上运行Docker之外:
6)我的应用程序在localhost(Mac)上运行Docker之外:
有谁知道解决问题或找到问题的方法?我知道这是一个可能难以解决的问题.所以,我的问题与我应该如何调试以找到问题更相关.
我的Dockerfile:
FROM php:7.0.17-apache
RUN apt-get update
RUN apt-get install -y …