从优惠中匹配产品的最佳数据库存储
Best database storage for matching products from offers
我有以下问题。我有产品、报价及其参数(在 MySQL 中大约 300 000 000 行)。基于报价参数及其费率(参数是动态的,每个参数类型都有不同的费率),我必须将报价加入产品。当然会有很多更新,删除或插入(例如大约5000req/s)。
第二个功能是通过 api 发送这些连接信息。有人对 NoSQL、关系数据库或类似的东西有什么建议用于存储吗?
编辑
我将在 MySQL:
中用一小部分数据展示我的示例
Offer
+----------+-----------------+
| offer_id | name |
+----------+-----------------+
| 1 | iphone_se_black |
| 2 | iphone_se_red |
| 3 | iphone_se_white |
+----------+-----------------+
Parameter_rating
+--------------+----------------+--------+
| parameter_id | parameter_name | rating |
+--------------+----------------+--------+
| 1 | os | 10 |
| 2 | processor | 10 |
| 3 | ram | 10 |
| 4 | color | 1 |
+--------------+----------------+--------+
Parameter value
+----+--------------+----------------+
| id | parameter_id | value |
+----+--------------+----------------+
| 1 | 1 | iOS |
| 2 | 2 | some_processor |
| 3 | 3 | 2GB |
| 4 | 4 | black |
| 5 | 4 | red |
| 6 | 4 | white |
+----+--------------+----------------+
Parameter_to_value
+----------+--------------------+
| offer_id | parameter_value_id |
+----------+--------------------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 2 | 5 |
| 3 | 1 |
| 3 | 2 |
| 3 | 3 |
| 3 | 6 |
+----------+--------------------+
基于此数据,我必须 return 出价 1,2 和 3 是一种产品。
最大的问题是数据经常变化。比如改价格,去掉offer等等。所以,我觉得MySQL不是最合适的技术,我尝试选择其他的。
平台
any recommendations what NoSQL, relational database or something similar to use for storage?
Therefore, I do not think that MySQL is the most suitable technology and I try to choose another.
所有这些都是关系数据库的普通费用。成千上万的银行运行 交易和定价系统在这样的系统上非常活跃,来自数十万用户。每天。您提到的更改在此类系统上是正常的(例如,定价和定价基础,随时更改,以响应买卖)。
但他们使用正版 SQL 平台。 Freeware/shareware/vapourware/nowhere 套件,例如 MySQL 和 PostgreSQL 既不符合 SQL 标准,也不是高吞吐量 OLTP 系统的可行平台(无服务器架构;无 ACID 事务;等) .他们仍在实施 SQL 平台自 1984 年以来的基础知识,这非常困难(不可能!),因为他们没有服务器架构。
因此MySQL和PostgreSQL不适合,因为性能太差;零并发;等等,而不是为了任何数据库设计问题。
要了解真正的 OLTP 服务器架构 的价值,请参阅 Oracle vs Sybase ASE。尽管本文明确针对 Oracle,但它适用于所有免费软件,因为所有免费软件都具有与 Oracle 相同的非体系结构。实际上,甚至比 Oracle 还少。一分钱一分货。
数据分析
此答案仅限于关系数据库; SQL,其指定的数据子语言;和一个真正的、商业上可行的 SQL 平台。
系统似乎支持某种拍卖,这意味着您必须维护 available/sold 项的库存。所需的数据库设计很普通。
但是,您的问题不够明确,无法回答。你在做很多假设,我们不参与。请允许我提出一些您需要考虑和回答的主要问题(更新您的问题):
系统处理操作的基本事物是什么?
(手机等产品?)
那些东西是怎么鉴定的?
(不是 ID
,而是人类如何识别每一件事)
这些东西的属性是什么?
(请不要 "parameter" ... 也许 OS; RAM; Processor; Colour
) ?
那么属性值就可以理解
(除非你持有和维护一个东西,否则你不能弄乱一个东西的属性)
针对这些东西操作或交易是什么
- (a) 内部或管理交易
(例如,AddProperty;AddPropertyValue;AddProduct;等)
- (b) 外部或在线用户交易
(例如 BidProduct [购买报价];CloseBid;等)
谁是运营商,允许这些交易?
(例如,管理员;产品供应商;在线投标人等)
我看不懂你的Parameter_to_value
,请解释一下
什么是rating
? 属性 与其他属性的某种权重,或者投标人声明的某些权重?
数据库设计 • 暂定
- 这可能需要几次迭代。
- 不必担心每个文件上的
ID
字段:首先我们必须了解数据,它与其他数据的关系,以及它是如何被识别的。我们可以在末尾添加 ID
个字段。
备注
- 我所有的数据模型都在 IDEF1X 中呈现,这是自 1993 年以来的关系数据库建模标准
- 我的IDEF1X Introduction是初学者必读的
- IDEF1X Anatomy是对那些逝去的人的复习。
- 如果您在阅读数据模型中的谓词时遇到问题,请告诉我,我将以文本形式生成它们。
我有以下问题。我有产品、报价及其参数(在 MySQL 中大约 300 000 000 行)。基于报价参数及其费率(参数是动态的,每个参数类型都有不同的费率),我必须将报价加入产品。当然会有很多更新,删除或插入(例如大约5000req/s)。
第二个功能是通过 api 发送这些连接信息。有人对 NoSQL、关系数据库或类似的东西有什么建议用于存储吗?
编辑
我将在 MySQL:
中用一小部分数据展示我的示例Offer
+----------+-----------------+
| offer_id | name |
+----------+-----------------+
| 1 | iphone_se_black |
| 2 | iphone_se_red |
| 3 | iphone_se_white |
+----------+-----------------+
Parameter_rating
+--------------+----------------+--------+
| parameter_id | parameter_name | rating |
+--------------+----------------+--------+
| 1 | os | 10 |
| 2 | processor | 10 |
| 3 | ram | 10 |
| 4 | color | 1 |
+--------------+----------------+--------+
Parameter value
+----+--------------+----------------+
| id | parameter_id | value |
+----+--------------+----------------+
| 1 | 1 | iOS |
| 2 | 2 | some_processor |
| 3 | 3 | 2GB |
| 4 | 4 | black |
| 5 | 4 | red |
| 6 | 4 | white |
+----+--------------+----------------+
Parameter_to_value
+----------+--------------------+
| offer_id | parameter_value_id |
+----------+--------------------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 2 | 5 |
| 3 | 1 |
| 3 | 2 |
| 3 | 3 |
| 3 | 6 |
+----------+--------------------+
基于此数据,我必须 return 出价 1,2 和 3 是一种产品。 最大的问题是数据经常变化。比如改价格,去掉offer等等。所以,我觉得MySQL不是最合适的技术,我尝试选择其他的。
平台
any recommendations what NoSQL, relational database or something similar to use for storage?
Therefore, I do not think that MySQL is the most suitable technology and I try to choose another.
所有这些都是关系数据库的普通费用。成千上万的银行运行 交易和定价系统在这样的系统上非常活跃,来自数十万用户。每天。您提到的更改在此类系统上是正常的(例如,定价和定价基础,随时更改,以响应买卖)。
但他们使用正版 SQL 平台。 Freeware/shareware/vapourware/nowhere 套件,例如 MySQL 和 PostgreSQL 既不符合 SQL 标准,也不是高吞吐量 OLTP 系统的可行平台(无服务器架构;无 ACID 事务;等) .他们仍在实施 SQL 平台自 1984 年以来的基础知识,这非常困难(不可能!),因为他们没有服务器架构。
因此MySQL和PostgreSQL不适合,因为性能太差;零并发;等等,而不是为了任何数据库设计问题。
要了解真正的 OLTP 服务器架构 的价值,请参阅 Oracle vs Sybase ASE。尽管本文明确针对 Oracle,但它适用于所有免费软件,因为所有免费软件都具有与 Oracle 相同的非体系结构。实际上,甚至比 Oracle 还少。一分钱一分货。
数据分析
此答案仅限于关系数据库; SQL,其指定的数据子语言;和一个真正的、商业上可行的 SQL 平台。
系统似乎支持某种拍卖,这意味着您必须维护 available/sold 项的库存。所需的数据库设计很普通。
但是,您的问题不够明确,无法回答。你在做很多假设,我们不参与。请允许我提出一些您需要考虑和回答的主要问题(更新您的问题):
系统处理操作的基本事物是什么?
(手机等产品?)那些东西是怎么鉴定的?
(不是ID
,而是人类如何识别每一件事)这些东西的属性是什么?
(请不要 "parameter" ... 也许OS; RAM; Processor; Colour
) ?
那么属性值就可以理解
(除非你持有和维护一个东西,否则你不能弄乱一个东西的属性)针对这些东西操作或交易是什么
- (a) 内部或管理交易
(例如,AddProperty;AddPropertyValue;AddProduct;等) - (b) 外部或在线用户交易
(例如 BidProduct [购买报价];CloseBid;等)
- (a) 内部或管理交易
谁是运营商,允许这些交易?
(例如,管理员;产品供应商;在线投标人等)我看不懂你的
Parameter_to_value
,请解释一下什么是
rating
? 属性 与其他属性的某种权重,或者投标人声明的某些权重?
数据库设计 • 暂定
- 这可能需要几次迭代。
- 不必担心每个文件上的
ID
字段:首先我们必须了解数据,它与其他数据的关系,以及它是如何被识别的。我们可以在末尾添加ID
个字段。
备注
- 我所有的数据模型都在 IDEF1X 中呈现,这是自 1993 年以来的关系数据库建模标准
- 我的IDEF1X Introduction是初学者必读的
- IDEF1X Anatomy是对那些逝去的人的复习。
- 如果您在阅读数据模型中的谓词时遇到问题,请告诉我,我将以文本形式生成它们。