是什么?
JSONB(JavaScript Object Notation Binary)是PostgreSQL、MySQL数据库中的一种数据类型,用于存储和查询JSON数据。它提供了在数据库中存储和操作JSON数据的能力,使得数据库能够更好地处理半结构化数据。JSONB是一种半结构化的数据雷系,支持的数据类型包括字符串、数字、布尔值、数组和对象,也可以嵌套存储更复杂的数据结构,比如嵌套的数组和对象。
存储格式
JSONB在保存时会将数据解析成二进制格式。
JSON和JSONB的区别?
①. JSON在保存时将数据原封不动地保存到数据库中,使用时还需要再次解析;JSONB在保存时会将数据解析成二进制格式, 使用时就不用再次解析了,因此JSONB在使用时性能更高;
②. JSON会保留KEY中间的空格以及各KEY的顺序和重复的KEY, 而JSONB不会;
③. JSON类型的列上无法直接创建索引,但可以在JSON类型的列上可以建函数索引;JSONB类型的列上可以直接创建索引,除了btree索引外,JSONB还支持GIN索引,GIN索引可以高效地从JSON内部的KEY/VALUE中搜索数据;
④. 在储存时,由于无需解析所以 JSON 会比 JSONB 快,但是在查询的时候 JSON 会比 JSONB 慢;
⑤. JSONB 数据在存储时会被转换成一个紧凑的内部二进制格式,这样也不会消耗大量的空间。
操作符
常见的操作符和函数,如: ->, ->>, #>, #>>, jsonb_set, jsonb_insert, jsonb_delete 等。
转:PostgreSQL JSON 函数和操作符
转:PostgreSQL中JSON函数和操作符