mysql - 在 MySQL 中将 JSON 数据存储为文本

标签 mysql json

这更像是一个概念/数据库架构相关的问题。为了保持数据一致性,而不是 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/

相关文章:

Android JSON CharSet UTF-8 问题

php - MySQL从不同数据库及时查询并输出在一张图中

mysql - where 子句中的未知列,它确实存在

python - 如果外键不存在,SQLAlchemy 会自动创建条目

MySQL : Select data from cloud database, 并插入本地主机数据库?

python - 使用 Flask 0.10.1 时获取 'TypeError: ObjectId(' ') 不是 JSON 序列化'

mysql - 如何在mysql查询中正确格式化引号和双引号

android - 读取 JSON 数据时出现 MalformedChunkCodingException

c# - 将 json 反序列化为具有默认私有(private)构造函数的类的 C# 对象

php - 将 'key' 和 'value' 属性包含到 json 响应中