关系 table - 是否推荐 JSON?
Relational table - is JSON recommended?
正在尝试实现一个关系 table 将用户链接到它最喜欢的书。
所以我有一个 table 和 book_id
和 user_id
样本Table:
user 1 favourite 1
user 1 favourite 2
user 1 favourite 3
我不能有类似 JSON 数组的东西吗?
user 1 [favourite 1, favourite 2, favourite 3] ?
就性能而言,第一个示例或第二个示例中的操作更好吗?
谢谢!!
第一个解决方案是 junction/association table,它是基于 SQL 的关系数据库的推荐解决方案。基本上,您有两个实体,书籍和用户。连接点 table 是连接它们的第三个 table。
SQL 提供了用于此目的的功能。关系数据库提供了优化性能的机制——通过索引、列存储、水平分区和奇特的算法——使它有效地工作,即使对于非常大的数据库也是如此。
这是否意味着从未使用过 JSON 结构?绝对不。他们有自己的位置——一些数据库甚至为他们提供索引支持。
但是,从数据库的角度来看,JSON 结构会增加提取值的额外开销。它们还会阻碍优化。因此,这样的行内数组不是数据表示的第一个选择。
对于 SQL 数据库的直接性能,根据 Gordon Linoff 的回答,连接 table 更好。
如果您是 serialising/deserialising 复杂对象,但是将对象作为 JSON 存储在 table.
的字段中通常性能更高
我有一个项目,我有一个完全标准化的结构来支持广告时间表。它运作良好,直到一位客户创建了一个包含 40,000 个点的时间表。保存和加载大型广告计划与小型广告计划的时间是几分钟而不是几秒钟。
我更改了结构以将对象存储为 JSON。序列化然后保存和反序列化然后加载大型广告计划的时间从几分钟缩短到几秒钟。
正在尝试实现一个关系 table 将用户链接到它最喜欢的书。
所以我有一个 table 和 book_id
和 user_id
样本Table:
user 1 favourite 1
user 1 favourite 2
user 1 favourite 3
我不能有类似 JSON 数组的东西吗?
user 1 [favourite 1, favourite 2, favourite 3] ?
就性能而言,第一个示例或第二个示例中的操作更好吗?
谢谢!!
第一个解决方案是 junction/association table,它是基于 SQL 的关系数据库的推荐解决方案。基本上,您有两个实体,书籍和用户。连接点 table 是连接它们的第三个 table。
SQL 提供了用于此目的的功能。关系数据库提供了优化性能的机制——通过索引、列存储、水平分区和奇特的算法——使它有效地工作,即使对于非常大的数据库也是如此。
这是否意味着从未使用过 JSON 结构?绝对不。他们有自己的位置——一些数据库甚至为他们提供索引支持。
但是,从数据库的角度来看,JSON 结构会增加提取值的额外开销。它们还会阻碍优化。因此,这样的行内数组不是数据表示的第一个选择。
对于 SQL 数据库的直接性能,根据 Gordon Linoff 的回答,连接 table 更好。
如果您是 serialising/deserialising 复杂对象,但是将对象作为 JSON 存储在 table.
的字段中通常性能更高我有一个项目,我有一个完全标准化的结构来支持广告时间表。它运作良好,直到一位客户创建了一个包含 40,000 个点的时间表。保存和加载大型广告计划与小型广告计划的时间是几分钟而不是几秒钟。
我更改了结构以将对象存储为 JSON。序列化然后保存和反序列化然后加载大型广告计划的时间从几分钟缩短到几秒钟。