背景:现有业务扩展字段,都存在feature字段,存在语义不清晰以及,难以利用索引查询问题
Mysql 5.7后推出利器,JSON+虚拟列,即实现了业务语义统一,也支持索引查询加速
一、简单描述
MySQL 5.7.7 labs版本开始InnoDB存储引擎已经原生支持JSON格式,该格式不是简单的BLOB类似的替换。原生的JSON格式支持有以下的优势:
JSON数据有效性检查:BLOB类型无法在数据库层做这样的约束性检查
查询性能的提升:查询不需要遍历所有字符串才能找到数据
支持索引:通过虚拟列的功能可以对JSON中的部分数据进行索引
二、MYSQL JSON 函数支持
三、MYBATIS 动态支持扩展+JSON查询
Mybatis查询
open="" separator="AND" close="">
and JSON_UNQUOTE(extended_fields->'$.${key}')= #{item}
]]>
MAP参数传入
DB 数据存储,格式JSON