首页 文章

Google Cloud SQL很慢

提问于
浏览
21

我有一个D0大小的Cloud SQL实例 . 当我运行一个简单的

select * from table

它有大约500行,执行平均需要100毫秒(由SQL Prompt报告) . 而在我的本地MySQL 5.5实例上,它只需要1毫秒 . 我的开发机器有2.9GHz双核Intel Core i7和8GB 1600MHz内存 . 我在FAQ中读到db的性能取决于大小 - 较大的实例有更多的RAM和CPU .

通过更大的实例大小来解决性能问题是否合理?或者我在这里错过了其他什么?

5 回答

  • 5

    这是我们在2019年1月的更新 .

    在4vcpu 15GB RAM实例中使用带有46GB数据库的Google Cloud SQL SECOND GENERATION,我们发现即使与运行默认mysql安装且只分配了125MB内存的开发macbook pro相比,它也会非常慢 .

    Mysql: Google Cloud SQL with 10GB RAM is 20x slower than Macbook Pro configured with 125MB ram

  • 2

    意见是表现不佳的原因 . 谷歌运行自己的MySQL引擎风格,其优化方式可能会损害视图 . 如果你有很多联接或/和联合会期望视图运行缓慢 .

    然而,自我发布这个问题已经差不多一年了,事情可能已经改变了 . 自从我们不再使用它们以来,我没有重新审视观点 .

  • 2

    EDIT: April 10 2016

    GAE现在提供第二代 Cloud mysql,即使像'db-g1-small'这样的基本层也能像旧的Cloud SQL产品中的D8层一样快 . 它也便宜得多 . 这似乎是一个重要的里程碑,没有理由再采取黑客攻击和变通办法 .

    您可以参考Cloud SQL定价,但近似的最低成本约为每月20美元 .

    ORIGINAL POST

    谷歌只是在D0层的慢速盒子上配置VM . 您可以选择D4,但RAM不是处理器的主要问题(他们没有提到GHz) .

    网络延迟不是问题 . 对于例如以下0.05s仅是服务器上的查询执行时间 . 此后的任何时间都可以用于数据传输 .

    mysql> select * from tracking limit 5;
    +--------------------------------+-----------+-----------+
    | id                             | scan_date | status    |
    +--------------------------------+-----------+-----------+
    | 420006929400111899561510697350 | NULL      | Delivered |
    | 420010859400111899561989496058 | NULL      | Delivered |
    | 420019849400111899561989496331 | NULL      | Delivered |
    | 420100109400111899561903290311 | NULL      | Delivered |
    | 420100319400111899561944407020 | NULL      | Delivered |
    +--------------------------------+-----------+-----------+
    5 rows in set (0.05 sec)
    

    Edit: March 2016

    对于多个应用程序,我不再使用Cloud SQL并使用远程托管的基本MySql集群,因为GAE打开了出站套接字连接 . 听起来很疯狂?不是根据数字 - 发送查询并通过此套接字连接获取数据比共同定位的D3更快 .

  • 3
    • 您从哪里连接到您的Cloud SQL实例?

    • 层大小将对性能产生重大影响 . 您可以临时更改实例的层以对其进行测试 .

  • 2

    我们也遇到了同样的问题 . 使用D16实例,一个简单的网站论坛页面将需要> 10s才能加载 . 我刚刚与GoogleCloud技术支持工程师进行了交谈,他确认CloudSQL还没有为“性能”做好准备(截至2015年夏季),他建议重写所有内容以使用DataStore ......

    因此,如果您的页面包含十几个小型SQL查询,而且数据集太大而无法完全适合缓存,那么CloudSQL现在就不是一个可行的解决方案 .

相关问题