这更像是一个概念/数据库架构相关的问题。为了保持数据一致性,而不是 NoSQL 数据存储,我只是将 JSON 对象存储为 MySQL 中的字符串/文本。所以一个 MySQL 行看起来像这样
ID, TIME_STAMP, DATA
我将在 DATA 字段中存储 JSON 数据。我不会更新任何行,而是添加带有当前时间戳的新行。所以,当我想要最新的数据时,我只需要获取带有 max(timestamp) 的行。我将 Tornado 与 Python MySQLDB 驱动程序一起用作我的主要后端应用程序。
我发现这种方法非常直接而且不容易出错。 JSON 对象相当简单,没有大量嵌套。
这种方法从根本上是错误的吗?在 MySQL 中将 JSON 数据存储为文本是否存在任何问题,或者我应该使用基于文件系统的存储(例如 HDFS)。请告诉我。
最佳答案
您可能知道,MySQL 是一种关系数据库管理器。它旨在以数据通过键相互关联的方式使用,形成关系,然后可用于产生复杂的数据检索。您的方法在技术上可行(并且非常快),但如果您扩大范围的复杂性,可能会(根据我目前所见)大大削弱您利用正在使用的技术的可能性!
我建议您使用像 Redis 或 MongoDB 这样的数据库,因为它们专为文档存储而不是关系架构而设计。
就是说,如果您发现该方法适用于您正在构建的内容,那就继续吧。如果您想增加解决方案的复杂性,您可能会遇到一些障碍,但无论哪种方式,您都会学到一些新东西!祝你好运!
关于mysql - 在 MySQL 中将 JSON 数据存储为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17651040/