本文共 1413 字,大约阅读时间需要 4 分钟。
从前有一台计算机。 然后有人建立了第二台计算机,并希望第一台计算机上有一些代码。 这意味着我们需要一种无需依赖底层硬件即可移动信息的方法。 从那时起,已经出现了许多字符编码和交换标准(ASCII,EBCIDIC,SGML,XML等)。 在过去的几年中,JavaScript Object Notation(JSON)一直是最受欢迎的。
在MySQL 5.7之前,您可以在字符字段中存储JSON格式的文档。 但是大字符串的搜索比较麻烦,编写正则表达式以在该字符串中查找值可能会令人沮丧。 而且,如果更改了字符串的一部分,则必须重写整个字符串,这效率极低,但在MySQL 5.6之前是必需的。
MySQL在MySQL 5.7中引入了本机JSON数据类型。 因此,就像整数,字符或实数一样,有了一种方法,可以将整个JSON文档存储在数据库表的一列中-并且该文档在列中的大小可能约为1千兆字节! 服务器将确保它是有效的JSON文档,然后将其保存为针对搜索优化的二进制格式。 这种新的数据类型可能比其他任何功能都要负责MySQL的更多升级。
数据类型还具有20多种功能。 这些功能将从文档中提取键值对,更新数据,提供有关数据的元数据,以JSON格式输出非JSON列,等等。 在心理上比REGEX容易得多。
MySQL 8现在处于开发人员里程碑版本中,并将添加一些新功能。 JSON_PRETTY_PRINT函数将格式化输出以使其更清晰。 而且在不重写整个文档的情况下重写部分数据的方式将有重大改进。
以无格式保存数据被认为是NoSQL功能。 Oracle,SQL Server,Postgresql等许多关系数据库都添加了JSON数据类型,从而模糊了NoSQL和SQL数据库的定义。
JSON数据类型出现后不久,MySQL Document Store功能就出现了。 它是为不了解结构化查询语言(SQL)但希望使用数据库的开发人员设计的。
开发人员创建数据集合,并根据需要以所选的编程语言(Java,JavaScript,Node.JS,Python,C ++等)对数据执行创建,删除,更新和删除(CRUD)功能。 。 开发人员不需要任何SQL知识,并且可能不在乎在后台为他们执行SQL,因为他们的数据保存在JSON列中。 这样,他们就可以保存和使用数据,而不必开发标准化的数据库表,设计数据或在等待数据库管理员建立数据存储区时费时费力。 许多项目一开始都不了解数据的外观,而是通过发展数据以适应当前情况而继续进行。
而且,如果需要这些JSON文档中的老式关系数据,则可以轻松地将各种键提取到生成的列中以进行标准SQL工作,然后对生成的列进行索引以进行快速搜索。
JSON是一种以非正式方式存储数据的好方法。 但是关系数据库在规范化数据上蓬勃发展,所有信息都被规范化为更小的组成部分,以提高访问速度。 另外,可能对数据缺乏严格性,例如,当记录电子邮件地址的字段可能被键入为email , eMail , e-mail或其他变体时。 但是,有许多令人信服的理由可以忽略严谨性,只要您了解自己可能会遇到麻烦。
如果您准备尝试一下,请 ,然后在那里下载因为它支持JSON列。 而且都是免费的!
翻译自:
转载地址:http://xwpzd.baihongyu.com/