相关疑难解决方法(0)

MySQL OPTIMIZE所有表?

MySQL有一个OPTIMIZE TABLE命令,可用于回收MySQL安装中未使用的空间.有没有办法(内置命令或公共存储过程)为数据库和/或服务器安装中的每个表运行此优化,或者这是您必须自己编写脚本的东西?

mysql sql

233
推荐指数
8
解决办法
32万
查看次数

Docker容器在连接到localhost db时运行速度很快但在外部db上运行速度很慢

我在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容器中运行我的应用程序:

  • 我的localhost(MAMP)上的数据库:非常快(<1秒);
  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

2)在我的应用程序在Docker容器内运行的Google Compute Engine上:

  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

3)在我的应用程序在Docker中运行的自定义Google应用程序引擎flex环境中:

  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

4)在PHP Google应用程序引擎flex环境中:

  • Google Cloud SQL上的数据库:非常慢(> 35秒);
  • Amazon RDS上的DB:非常慢(> 35秒);

5)我的应用程序在Google Compute Engine实例(PHP + apache)上运行Docker之外:

  • Google Cloud SQL上的数据库:非常快(<1秒);
  • Amazon RDS上的数据库:非常快(<1秒);

6)我的应用程序在localhost(Mac)上运行Docker之外:

  • Google Cloud SQL上的数据库:非常快(<1秒);
  • Amazon RDS上的数据库:非常快(<1秒);
  • 我的localhost(MAMP)上的数据库:非常快(<1秒);

有谁知道解决问题或找到问题的方法?我知道这是一个可能难以解决的问题.所以,我的问题与我应该如何调试以找到问题更相关.

我的Dockerfile:


    FROM php:7.0.17-apache

    RUN apt-get update
    RUN apt-get install -y …

docker

15
推荐指数
1
解决办法
3632
查看次数

标签 统计

docker ×1

mysql ×1

sql ×1