{"id":117927,"date":"2024-01-16T09:59:29","date_gmt":"2024-01-16T00:59:29","guid":{"rendered":"https:\/\/softantenna.com\/blog\/?p=117927"},"modified":"2024-01-16T09:59:29","modified_gmt":"2024-01-16T00:59:29","slug":"sqlite-3-45","status":"publish","type":"post","link":"https:\/\/softantenna.com\/blog\/sqlite-3-45\/","title":{"rendered":"SQLite 3.45\u304c\u30ea\u30ea\u30fc\u30b9 - JSON\u95a2\u6570\u304cJSONB\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5927\u5e45\u306b\u5411\u4e0a"},"content":{"rendered":"<p><img decoding=\"async\" style=\"display:block; margin-left:auto; margin-right:auto;\" src=\"https:\/\/softantenna.com\/blog\/wp-content\/uploads\/2024\/01\/s_20240116_94646.jpg\" alt=\"S 20240116 94646\" title=\"s_20240116_94646.jpg\" border=\"0\" width=\"1151\" height=\"652\" \/><\/p>\n<p>SQLite\u958b\u767a\u30c1\u30fc\u30e0\u306f1\u670815\u65e5(\u73fe\u5730\u6642\u9593)\u3001SQLite\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u6700\u65b0\u7248\u300c<a href=\"https:\/\/sqlite.org\/releaselog\/3_45_0.html\">SQLite 3.45<\/a>\u300d\u3092\u30ea\u30ea\u30fc\u30b9\u3057\u307e\u3057\u305f(<a href=\"https:\/\/www.phoronix.com\/news\/SQLite-3.45-Released\">Phoronix<\/a>)\u3002<\/p>\n<p>SQLite 3.45\u3067\u306f\u3001JSON SQL\u95a2\u6570\u306e\u6539\u826f\u304c\u884c\u308f\u308c\u3001JSONB\u3068\u547c\u3070\u308c\u308b\u65b0\u3057\u3044\u5185\u90e8\u30d1\u30fc\u30b9\u30c4\u30ea\u30fc\u5f62\u5f0f\u3092\u4f7f\u7528\u3059\u308b\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u3089\u308c\u3066\u3044\u307e\u3059\u3002JSONB\u306fJSON\u306e\u306e\u65b0\u3057\u3044\u5185\u90e8\u30d0\u30a4\u30ca\u30ea\u8868\u73fe\u3067\u3001SQL BLOB\u3068\u3057\u3066\u683c\u7d0d\u3055\u308c\u3001\u65e2\u5b58\u306eJSON\u30b5\u30dd\u30fc\u30c8\u3088\u308a\u3082\u6570\u500d\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u304c\u671f\u5f85\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>JSONB\u306b\u95a2\u3057\u3066SQLite\u306e<a href=\"https:\/\/www.sqlite.org\/json1.html#jsonbx\">\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/a>\u306f\u6b21\u306e\u3088\u3046\u306b\u8aac\u660e\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<blockquote><p>\nSQLite allows its internal \"parse tree\" representation of JSON to be stored on disk, as a BLOB, in a format that we call \"JSONB\". By storing SQLite's internal binary representation of JSON directly in the database, applications can bypass the overhead of parsing and rendering JSON when reading and updating JSON values. The internal JSONB format is also uses slightly less disk space then text JSON<\/p>\n<p>Any SQL function parameter that accepts text JSON as an input will also accept a BLOB in the JSONB format. The function will operate the same in either case, except that it will run faster when the input is JSONB, since it does not need to run the JSON parser.<\/p>\n<p>SQLite\u3067\u306f\u3001JSON\u306e\u5185\u90e8\u7684\u306a\u300c\u30d1\u30fc\u30b9\u30c4\u30ea\u30fc\u300d\u8868\u73fe\u3092\u3001\u300cJSONB\u300d\u3068\u547c\u3076\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u3001BLOB\u3068\u3057\u3066\u30c7\u30a3\u30b9\u30af\u306b\u683c\u7d0d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002SQLite\u5185\u90e8\u306eJSON \u306e\u30d0\u30a4\u30ca\u30ea\u8868\u73fe\u3092\u76f4\u63a5\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u683c\u7d0d\u3059\u308b\u3053\u3068\u3067\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f JSON \u5024\u306e\u8aad\u307f\u53d6\u308a\u3084\u66f4\u65b0\u6642\u306b JSON \u306e\u89e3\u6790\u3084\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u306b\u304b\u304b\u308b\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3092\u56de\u907f\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u5185\u90e8 JSONB \u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306f\u3001\u30c6\u30ad\u30b9\u30c8 JSON \u3088\u308a\u3082\u4f7f\u7528\u3059\u308b\u30c7\u30a3\u30b9\u30af\u5bb9\u91cf\u304c\u308f\u305a\u304b\u306b\u5c11\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u30c6\u30ad\u30b9\u30c8JSON\u3092\u5165\u529b\u3068\u3057\u3066\u53d7\u3051\u4ed8\u3051\u308bSQL\u95a2\u6570\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u3001JSONB\u5f62\u5f0f\u306eBLOB\u3082\u53d7\u3051\u4ed8\u3051\u307e\u3059\u3002\u3069\u3061\u3089\u306e\u5834\u5408\u3067\u3082\u95a2\u6570\u306e\u52d5\u4f5c\u306f\u540c\u3058\u3067\u3059\u304c\u3001\u5165\u529b\u304cJSONB\u306e\u5834\u5408\u306fJSON\u30d1\u30fc\u30b5\u3092\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u306a\u3044\u305f\u3081\u3001\u3088\u308a\u9ad8\u901f\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\n<\/p><\/blockquote>\n<p>\u305d\u306e\u4ed6\u3001SQLITE_DIRECT_OVERFLOW_READ\u6700\u9069\u5316\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u6709\u52b9\u306b\u306a\u308b\u5909\u66f4\u3084\u3001FTS5\u4eee\u60f3\u30c6\u30fc\u30d6\u30eb\u306b FTS5 tokendata\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8ffd\u52a0\u3059\u308b\u6539\u826f\u3001\u30af\u30a8\u30ea\u30d7\u30e9\u30f3\u30ca\u30fc\u306e\u6539\u826f\u3001SQLITE_MAX_PAGE_COUNT\u306e\u5897\u52a0\u3001CLI\u306e\u62e1\u5f35\u306a\u3069\u304c\u884c\u308f\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8\u306f<a href=\"https:\/\/sqlite.org\/releaselog\/3_45_0.html\">\u3053\u3061\u3089<\/a>\u3067\u78ba\u8a8d\u53ef\u80fd\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQLite\u958b\u767a\u30c1\u30fc\u30e0\u306f1\u670815\u65e5(\u73fe\u5730\u6642\u9593)\u3001SQLite\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u6700\u65b0\u7248\u300cSQLite 3.45\u300d\u3092\u30ea\u30ea\u30fc\u30b9\u3057\u307e\u3057\u305f(Phoronix)\u3002 SQLite 3.45\u3067\u306f\u3001JSON SQL\u95a2\u6570\u306e\u6539\u826f\u304c\u884c\u308f\u308c\u3001JSON [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":117928,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","footnotes":""},"categories":[75],"tags":[1421],"class_list":["post-117927","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-sqlite"],"_links":{"self":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts\/117927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/comments?post=117927"}],"version-history":[{"count":0,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts\/117927\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/media\/117928"}],"wp:attachment":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/media?parent=117927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/categories?post=117927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/tags?post=117927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}