我们之前已经安装了postgresql数据库,并且使用jsonb将一些数据保存在json中,因为我们需要根据可以存储在其中的json来保持一列数据的动态性。我们还可以通过json键和值执行文本搜索和比较,一切都很好。最近由于一些技术原因,我们的团队决定迁移到mysql。所以我的问题是mysql中的json是否像postgresql一样支持搜索,以及mysql中的json在mysql 5.7.8版本中的稳定程度。 最佳答案 就在mysql文档中:JSON支持从mysql 5.7.8开始,mysql支持原生json类型。JSON格式值不是作为字符串存储的,而是使用内部二进制文件允许快速读取文档元素的格式。JSON格式存储在json列中的文档在它们被插入或更新,使用一个无效的文档生成错误。json文档在创建时是规范化的,并且可以进行比较使用大多数比较运算符,如=,,>=,,!=,和;有关支持的运算符和优先级的信息以及MySQL在比较JSON值时遵循的其他规则,请参见json值的比较和排序。mysql 5.7.8还引入了许多用于处理json值。这些功能包括:创建json值的函数:json_array()、json_merge()和json_object().参见第12.16.2节,“创建json的函数价值观”。搜索json值的函数:json_contains(),json_包含_path()、json_extract()、json_keys()和json_search()。请参阅第12.16.3节“搜索json值的函数”。功能修改json值:json_append(),json_array_append(),json_array_insert(),json_insert(),json_quote(),json_remove(),json_replace()、json_set()和json_unquote()。见第12.16.4节,“修改json值的函数”。提供的功能关于json值的信息:json_depth(),json_length(),json_type()和json_valid()。见第12.16.5节,“功能返回json值属性”。在mysql 5.7.9及更高版本中,可以使用column->path作为json_extract(column,path)的简写。这作品作为列的别名,列标识符可以出现在SQL语句,包括WHERE、ORDER BY和GROUP BY子句。这个包括select、update、delete、create table和其他sql声明。左侧必须是json列标识符(并且不是化名)。右边是引用的json路径表达式对作为列返回的json文档求值价值。有关更多信息,请参见第12.16.3节“搜索json值的函数”有关->和json_extract()的信息。有关json的信息mysql 5.7中的路径支持,请参见搜索和修改json值。另请参见辅助索引和虚拟生成列。此外,我们一直在使用mysql并用json存储数据,就性能和可伸缩性而言,它工作得非常好。您可以在:https://dev.mysql.com/doc/refman/5.7/en/json.html关于mysql - 在mysql中使用和搜索json数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43085130/
10-11 22:09
查看更多