首页 > 解决方案 > 目前我将 json 数据保存在字符串类型的列中,制作 json 类型有什么好处吗?

问题描述

在我的项目中,我目前正在此列中保存一些 json 数据:

$table->string('meta')->nullable();

使用有什么真正的好处吗

$table->json('meta')->nullable();

因为我的应用程序必须同时使用 MySQL 和 MariaDB,所以我没有使用 laravel 提供的任何额外功能来搜索和更新 json 列。因此,如果我们算上这些好处,那么在将保存 json 数据的列中使用 json 而不是字符串还有其他好处吗?

标签: laravellaravel-5

解决方案


文档中描述了JSON优于String的主要优点

自动验证存储在 JSON 列中的 JSON 文档。无效的文档会产生错误。

优化的存储格式。存储在 JSON 列中的 JSON 文档被转换为允许对文档元素进行快速读取访问的内部格式。当服务器稍后必须读取以这种二进制格式存储的 JSON 值时,不需要从文本表示中解析该值。二进制格式的结构使服务器能够直接通过键或数组索引查找子对象或嵌套值,而无需读取文档中它们之前或之后的所有值。

并且可以添加,您可以为 json 列创建二级索引


推荐阅读