Google Cloud SQL:无法执行语句

时间:2012-10-19 09:05:01

标签: mysql database-performance google-cloud-sql

我的Google云sql表目前有1126571行,每天最少添加3万行。执行查询时:

select count(distinct sno) as tot from visits

sql提示它会产生以下错误:

Error 0: Unable to execute statement 

。 Cloud SQL Query是否容易超过60秒异常。当桌子变大时如何克服这个问题。

3 个答案:

答案 0 :(得分:1)

将表分成两个表。一个接收新的访问...交易......一个用于报告。索引报告表。定期传输和清除数据。

交易表将保持相对较小,因此可以快速计算。由于索引,报告表将快速计算。

答案 1 :(得分:0)

在您的专栏INDEX中添加sno,这样可以提高其效果。

ALTER TABLE visits ADD INDEX (sno)

答案 2 :(得分:0)

尝试拆分许多部分的选择查询,例如,第一个选择查询必须限制为50000,然后第二个选择查询必须从50000开始并限制为50000,依此类推。

您可以通过以下方案执行此操作:

1-获取记录数。

2-制作循环并使其以记录计数结束。

3-对于每个循环,使select查询选择50000条记录并将结果附加到数据表(取决于您的编程语言)

4-在下一个循环中,您必须从上一个循环结束的位置开始选择,例如,第二个查询必须选择下一个50000记录,依此类推。

您可以通过此SQL查询语句指定选择起始索引:

SELECT * FROM mytable somefield LIMIT 50000 OFFSET 0;

然后您将获得所需的全部数据。

注意:进行测试以查看在60秒内可以加载的最大记录数量,这将减少您的循环,从而提高性能。