关于在GCP负载上部署的MySQL

时间:2018-10-22 09:06:20

标签: mysql performance yii2 google-cloud-platform load

我几乎完成了一个目标为拥有10,000个用户的网站。它是免费的,所以我想保持成本尽可能低。

除两个表外,所有表均少于100,000行(只读)。剩下的一张表中,每个用户总共有约5,200行。假设他们继续使用该行,那么我估计另一个用户在两年内约有150万行。

后面的表如下,除了col3 ...前者相同。

CREATE TABLE `my_table` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `col1` int(11) NOT NULL,
  `col2` mediumint(8) unsigned NOT NULL,
  `col3` smallint(5) unsigned NOT NULL,
  `col4` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk1_ix` (`col1`),
  KEY `fk2_ix` (`col2`),
  KEY `fk3_ix` (`col3`),
  CONSTRAINT `fk1` FOREIGN KEY (`col1`) REFERENCES `pktbl1` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk2` FOREIGN KEY (`col2`) REFERENCES `pktbl2` (`id`) ON UPDATE CASCADE,
  CONSTRAINT `fk3` FOREIGN KEY (`col3`) REFERENCES `pktbl3` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

对于每个活跃用户,这两个表平均每天要写入约10-20次,而读取约4-5次。

我想估算我的运行成本,有两个主要问题,感谢其他任何投入。

1)MySQL是否能够合理地处理我的负载。

2)您认为我需要多少CPU / RAM来处理负载,响应时间/延迟最多为一秒。

我的网站是使用PHP Yii2框架设计的,因此,如果需要,我可以只切换数据库。查询是简单的插入和索引选择语句。

2 个答案:

答案 0 :(得分:0)

实际上没有一种估算方法,您的需求非常低。如果您能够进行一些负载测试对您有所帮助。

但是,如果您可以忍受几分钟的停机时间,则可以向上或向下扩展Cloud SQL实例。这可能会让您有信心,从f1-microg1-small开始并不会阻止您在性能无法满足您的需求时进行升级。

答案 1 :(得分:0)

200亿行,主要在小表中?这听起来像1 TB的磁盘空间。为此做计划。

每天

每天20万次查询(写或读)?每秒只有几个。在任何服务器上都没问题。但是,这假设查询不是太复杂。

MySQL会处理吗?在这个论坛中四处看看(更好的是dba.stackoverflow),您将看到正在讨论的更大的系统。

CPU-通常最少的问题。

RAM-取决于查询。这些天,我不会从小于4GB的存储空间开始。

云-这是一个可行的选择。您可以支付额外的费用,但是麻烦较少,尤其是在需要升级的情况下。

在系统上获得100个用户,然后评估您拥有的资源。看看数字是什么样子。

如果遇到性能问题,请首先查看查询和索引,以查看最慢的查询是否可以得到改善。