如何为应用选择正确的数据库?这在很大程度上取决于用例特点,例如事务处理、分析处理、内存数据库等等·····当然我们在选择时还需考虑其他的因素。
本篇文章涵盖了 Google Cloud 跨关系数据库(SQL)和非关系数据库(NoSQL)的不同选项,并会解释哪些用例最适合哪个数据库类型。
关系型数据库
在关系型数据库中,数据储存在表、行和列中,通常适用于结构化数据。因此数据结构不经常发生变化的情况下多使用关系型数据库。在与大多数关系型数据库交互时往往会用到SQL,这会为数据提供 ACID 一致性模式。
主要特点包括:
-
原子性:事务中的所有操作均成功或被回滚;
-
一致性:事务完成后,数据库在结构上是健全的;
-
隔离性:事务之间不相互竞争,对数据的争用访问由数据库控制,以便事务看起来是按顺序运行的;
-
持久性:应用事务的结果是永久性的,即使出现故障。
由于这些特性,关系数据库常常被用于需要高精度的应用程序和交易查询,如金融和零售交易。例如:在银行业务中,当客户提出资金转账请求时,我们希望确保交易是可能的,并且交易实际上发生在最新的账户余额上,这种情况下,错误或重新提交请求可能没问题。