我刚刚开始使用双向查询,我的数据库很小(1 个表 10K 行),我的查询是简单的计数和分组。 每个请求平均需要 3-4 秒,但有时会跳到 10 秒,事件需要 15 秒 我正在使用 BQ 工具从爱尔兰的亚马逊 Linux 服务器进行查询。
是否可以更快地获得结果(不到 1 秒),以便我能够更快地展示我的网页。
这是预期的行为。在 BigQuery 中,您使用的是共享基础架构,因此根据当前的使用情况,您会获得更好或更差的响应时间。实际上,通过不增加配额来鼓励和奖励批量查询(不需要交互性的查询)。
您通常不使用 BigQuery 作为主数据库来在 Web 应用程序中显示数据。根据您想要执行的操作,BigQuery 可以是大数据存储,您应该有另一个中间存储,您可以在其中存储计算结果以显示给用户。或者也许在您的用例中您并不真正需要 BigQuery 并且有更好的解决方案。
在任何情况下,您都无法避免几秒钟的等待(即使您选择高级版,您也会获得更多有关服务的保证,但在任何情况下,服务的速度都不足以成为网络应用程序的主要后端)
1) Big Query 在成为“超快速”数据库之前是一个高度可扩展的数据库。它的设计目的是使用一种名为 Dremel 的技术来处理大量数据,并在几台不同的机器之间分配处理。因为它被设计为使用多台机器和并行处理,所以您应该期望拥有超级可扩展性和良好的性能。
2) 当您想要分析数十亿行时,BigQuery 是一种资产。
例如:在 5-10 秒内分析所有维基百科修订版也不错,不是吗?但即使是小得多的表也需要大约相同的时间,即使有 10k 行。
3) 在此大小下,您最好使用更传统的数据存储解决方案,例如 Cloud SQL 或 App Engine 数据存储区。如果您想保留 SQL 功能,Cloud SQL 是最好的选择。
Sybase IQ 通常安装在单个数据库中,并且不使用 Dremel。也就是说,在许多情况下,它都会比 Big Query 更快……正如设计的那样。
4) 当然,性能与专用环境不同。您每月支付 20K 美元即可获得专用环境。