Ecommerce/Shopping 购物车(和结帐流程):使用关系型或 NoSQL
Ecommerce/Shopping Cart (and checkout process) : use Relational or NoSQL
对于电子商务 Web 应用程序的购物车(和结帐流程)用例,使用关系 DB (RDBMS) 或 [=18 哪个更好=]NoSQL DB 为 MongoDB/Cassandra/others?
对于目录的角度来看,NoSQL
是具有灵活架构的理想用例,data/nodes 的水平扩展。
购物车用例的每种方法的 pros/cons 是什么?
SQL 和无SQL 数据库之间存在许多差异。这些差异赋予了每种存储类型在不同情况下的优缺点。
由于这两种数据库类型最终都可以工作,所以这完全取决于上下文或您的实现。
在这种特定情况下(购物车),优缺点可能都与数据的一致性和可扩展性有关.
否SQL 数据库更好(专业)适合更多"dynamic" 应用程序(数据分析、物联网、多媒体等)。此类应用程序使用的数据通常没有严格的结构,而且数量非常大。这意味着无需开发复杂的数据库模型,并且在单独 "nodes" 中存储大量数据的成本更低。这也使得 noSQL 数据库更容易扩展和扩展。主要问题(缺点)是缺乏结构。这将使您更难 运行 分析和跟踪数据库的每个细节。
同时,当您的数据 well-structured 并且基本一致时,SQL 数据库很有用(优点)。如您所知,SQL 将数据存储在列和行中,如果您想要生成数据的详细统计信息,并且如果您想保留发生在你的应用程序。主要缺点(缺点)是 SQL 数据库的设计需要更多时间,而且维护 SQL 数据库可能更昂贵(可扩展性和物理存储需要更多硬件)。
在性能方面,我认为在这个用例中不会有任何重大差异。
如果您考虑一下我刚刚写的所有内容,我会说 在购物车的上下文中,SQL 模型是可行的方法 .购物车不需要大量升级和更改(可扩展性),它的数据始终是结构化的(商品名称、价格等),您可能希望跟踪用户在电子商务应用程序中进行的每笔交易(例如问责制和安全原因)。
tl;dr 使用 SQL 因为购物车用例中的数据是结构化且一致的。
祝你好运!
像 Cassandra 和 postgres/mysql 这样的东西的一般 pros/cons 看起来像:
- Cassandra 可以更好地处理多 DC HA。
- Cassandra 可以更好地处理高写入量。
- Cassandra 允许您在不停机的情况下重启主机,因为您将拥有多个副本(并且您不必担心 WAL 重放或二进制日志重放或奇怪的主-主复制问题,尽管一些 RDBMS 插件使这更容易 MySQL 和 Postgres 比以前更好了)。
Cassandra 允许您更好地扩展(线性扩展实例数量高达 ~1200 左右实例)
MySQL/Postgres 允许您通过向现有表添加索引来随着业务需求的发展构建查询; Cassandra 希望您在开始写入数据之前提前了解查询并进行数据建模。
- MySQL/Postgres 往往更易于使用,您会发现大量 libraries/UIs/etc 可以帮助您入门
- MySQL/Postgres 提供真实交易/MVCC - Casssandra 的轻量级交易仅限于对单个密钥的操作,isolation/atomicity 保证要弱得多。
不过,最终,除非您相信您的购物车将处理成千上万的并发用户,否则这可能并不重要(只要您使用具有真实数据持久性保证的东西):使用您最擅长的使用舒适。我会使用 Cassandra,因为我非常了解 Cassandra,但如果你对 Cassandra(或其他)不是很好,请使用你最了解的东西。
对于电子商务 Web 应用程序的购物车(和结帐流程)用例,使用关系 DB (RDBMS) 或 [=18 哪个更好=]NoSQL DB 为 MongoDB/Cassandra/others?
对于目录的角度来看,NoSQL
是具有灵活架构的理想用例,data/nodes 的水平扩展。
购物车用例的每种方法的 pros/cons 是什么?
SQL 和无SQL 数据库之间存在许多差异。这些差异赋予了每种存储类型在不同情况下的优缺点。
由于这两种数据库类型最终都可以工作,所以这完全取决于上下文或您的实现。
在这种特定情况下(购物车),优缺点可能都与数据的一致性和可扩展性有关.
否SQL 数据库更好(专业)适合更多"dynamic" 应用程序(数据分析、物联网、多媒体等)。此类应用程序使用的数据通常没有严格的结构,而且数量非常大。这意味着无需开发复杂的数据库模型,并且在单独 "nodes" 中存储大量数据的成本更低。这也使得 noSQL 数据库更容易扩展和扩展。主要问题(缺点)是缺乏结构。这将使您更难 运行 分析和跟踪数据库的每个细节。
同时,当您的数据 well-structured 并且基本一致时,SQL 数据库很有用(优点)。如您所知,SQL 将数据存储在列和行中,如果您想要生成数据的详细统计信息,并且如果您想保留发生在你的应用程序。主要缺点(缺点)是 SQL 数据库的设计需要更多时间,而且维护 SQL 数据库可能更昂贵(可扩展性和物理存储需要更多硬件)。
在性能方面,我认为在这个用例中不会有任何重大差异。
如果您考虑一下我刚刚写的所有内容,我会说 在购物车的上下文中,SQL 模型是可行的方法 .购物车不需要大量升级和更改(可扩展性),它的数据始终是结构化的(商品名称、价格等),您可能希望跟踪用户在电子商务应用程序中进行的每笔交易(例如问责制和安全原因)。
tl;dr 使用 SQL 因为购物车用例中的数据是结构化且一致的。
祝你好运!
像 Cassandra 和 postgres/mysql 这样的东西的一般 pros/cons 看起来像:
- Cassandra 可以更好地处理多 DC HA。
- Cassandra 可以更好地处理高写入量。
- Cassandra 允许您在不停机的情况下重启主机,因为您将拥有多个副本(并且您不必担心 WAL 重放或二进制日志重放或奇怪的主-主复制问题,尽管一些 RDBMS 插件使这更容易 MySQL 和 Postgres 比以前更好了)。
Cassandra 允许您更好地扩展(线性扩展实例数量高达 ~1200 左右实例)
MySQL/Postgres 允许您通过向现有表添加索引来随着业务需求的发展构建查询; Cassandra 希望您在开始写入数据之前提前了解查询并进行数据建模。
- MySQL/Postgres 往往更易于使用,您会发现大量 libraries/UIs/etc 可以帮助您入门
- MySQL/Postgres 提供真实交易/MVCC - Casssandra 的轻量级交易仅限于对单个密钥的操作,isolation/atomicity 保证要弱得多。
不过,最终,除非您相信您的购物车将处理成千上万的并发用户,否则这可能并不重要(只要您使用具有真实数据持久性保证的东西):使用您最擅长的使用舒适。我会使用 Cassandra,因为我非常了解 Cassandra,但如果你对 Cassandra(或其他)不是很好,请使用你最了解的东西。