【问题标题】:How are I/O operations defined in Google Cloud SQL?Google Cloud SQL 中如何定义 I/O 操作?
【发布时间】:2012-11-30 06:36:23
【问题描述】:
我想知道如何在 Google Cloud SQL 中定义低级 I/O 操作,至于他们的数据存储,他们定义了对于一个 INSERT 或 UPDATE 执行多个低级 I/O 操作。 SQL 是否也一样,如果是,这些是什么,另外,如果我的数据在 Cloud SQL 中的多台服务器上复制,我是否会支付复制费用,例如,如果我的数据分布在 5 台服务器上,那么我的 1 次插入是否等于到五个 I/O 操作?
【问题讨论】:
标签:
google-app-engine
google-cloud-sql
【解决方案1】:
操作定义为对 read() 或 fsync() 的调用。如果有大量缓冲数据,write() 也可以触发操作。您可以在 strace 下运行 mysqld 以了解查询将触发多少操作。例如,一个简单的查询,如
INSERT INTO t VALUES (42);
大概会生成
write(logfile, 42);
fsync(logfile);
write(datafile, 42);
fsync(datafile);
所以这将算作两个操作。复制包含在成本中,因此这仅算作两个操作,而不是 2 * num_replicas。