两者的相似之处在于,我们可以使用SQL查询存储在MySQL和BigQuery中的数据。
我们可以说这两项技术完全有不同的用例,它们的哲学、设计和内部架构也不同。
您可以使用MySQL为交易系统或OLTP存储数据。例如,如果您拥有一家电子商务网站,则可以使用MySQL数据库存储有关用户、订单、付款等方面的数据。您可能会有大量的事务/秒,但是一个事务通常涉及到数据库中的1行或多行。 MySQL和其他关系型数据库引擎对此很好。它们使用某种形式的规范化使写操作高效,并保持数据一致。
现在想象一下,您需要分析过去5年内电子商务网站的数据。现在您的查询将涉及所有条目(或行),但通常仅涉及某些列。而且,您的查询/秒数与前面的情况不同。您可以看到这两种情况是不同的。在这种情况下,MySQL不再是最佳选择,而是OLAP系统。BigQuery就是一个OLAP的例子。使用BigQuery,您存储的是用于分析而不是运营目的的数据。
现在您看到这2种技术提供不同的用途,您就可以理解它们的设计和架构上的差异。例如,使用BigQuery时,建议您对数据进行去规范化以避免昂贵的JOIN运算符。内部,BigQuery按列而不是按行存储数据,与MySQL不同。这些决策有一个共同的目标,使分析查询运行高效。
您可以进一步研究OLTP vs OLAP :).
MySQL是一款免费的RDBMS,可在任何地方运行,非常流行,通用性强,得到了很好的支持,而且非常灵活。
BigQuery是谷歌所拥有的专有数据库,类似Cassandra,在功能上比较受限,但对于某些类型的问题可以更容易地进行扩展,并深度嵌入谷歌生态系统,价格昂贵。
除非您有特定的理由使用BigQuery,否则应始终默认使用MySQL或Postgres。如果您不知道应该使用哪个,那么您应该使用MySQL或Postgres。