MySQL 5.7では、JSONデータを「JSON型」としてネイティブで扱えます。サンプルを見ながら、基本的な使い方を確認しましょう。 ※本記事は2016年5月31日に掲載した記事を一部再編集して更新したものです。執筆時点の技術情報をベースにしています。 「SQL vs NoSQL: The Differences」で紹介したように、SQLとNoSQLの境界線は、両言語が他方の特徴を取り入れる傾向にあるため、一層分かりにくくなってきています。MySQL 5.7 InnoDBおよびPostgreSQL 9.4データベースは、どちらも1つのフィールド上でJSONを直接サポートしています。 本記事では、MySQLでJSONを扱う方法について詳しく説明します。 (Postgre SQLはバージョン9.4以前からJSONをサポートしており、すべてのデータベースがJSONを単一の文字列のBLOB型とし
Postgresql 9.3でJSON関連のサポートが強化されている。 JSON型 (>=9.2) JSON演算子 (読み込み専用アクセッサ) JSONサポート関数 (JSON データ変換) 9.3リリースの目玉機能だが、使ってみた人が少ないのか一向に情報が上がってこない。 ドキュメントを見てもなんだか面倒くさそうで自分から使う気は起きない。 実際の使い勝手はどうなのか、たまたま開発で触る機会があったのでまとめておく。 PostgreSQL自体そんなに詳しいわけではないので、間違いがあったら突っ込んでほしい。 追記: PostgreSQL 9.4 のリリースで jsonb の登場するなど状況がかなり変わっている。 9.4 ついてもフォローしたので参考にしてほしい。 PostgreSQL 9.4 の JSON サポートについて PostgreSQL JSON の応用メモ テーブルデータをJS
PostgreSQL 9.4 で JSON 関連機能が強化された。 jsonb 型の追加 jsonb 関係演算子の追加 GIN インデックスの jsonb サポート JSON サポート関数の拡充 以前 PostgresSQL 9.3 の JSON サポートについてまとめた。 本稿はその続編であり、PostgreSQL 9.4 になって JSON どう進歩したのかをユーザ視点で検証したい。(また長いんだこれが) 修正リクエストは歓迎します。 なお本稿では、大文字の JSON はその書式やデータを表し、PostgreSQL の型を指す場合に json や jsonb のように小文字を使って区別する。検証は素でソースビルドした beta2 版の PostgreSQL 9.4 を仮想環境上の CentOS 7 上で行った。 jsonb 見参 9.4 で追加された jsonb 型は JSON テキス
This guide covers PostgreSQL specific usage of Active Record. After reading this guide, you will know: How to use PostgreSQL's datatypes. How to use UUID primary keys. How to include non-key columns in indexes. How to use deferrable foreign keys. How to use unique constraints. How to implement exclusion constraints. How to implement full text search with PostgreSQL. How to back your Active Record
メモ。 調べた時のバージョンは、PostgreSQLは9.4.0で、Railsは4.2.0。 JSONBデータ型とはバイナリ型JSONの事。JSONBの"B"はバイナリ(binary)のB。 元々PostgreSQLでは9.2からJSON型に対応しており、9.4からJSONを独自バイナリ形式で格納するJSONB型が追加された。 JSONBの特徴をざっと書くと以下のような感じ データの正規化が行われ、入力結果が完全に保持されないケースがある(不要な要素の間の空白文字の削除、重複したキーがあった場合に後述したもののみ有効となる等)格納容量が大きくなる傾向にある。また、正規化が行われる為、格納処理は普通のJSON型の比べて遅い。検索がJSONと比べて格段に早い基本的に、検索に特化している感じらしい。 JSONBについての詳細は、@nuko_yokohamaさんのJSONBデータ型を使ってみようが
去年 Qiita PostgreSQL 9.4 の JSON サポートについて紹介させてもらったが、まだ書きかけで jsonb の応用例としてや軽い検証記事や SQL イデオムを追記する予定だったが、整理しきれず放置したままになっていた。 そうこうしている内に早くも次期バージョン PostgreSQL 9.5 の情報がちらほらと出始めてきてしまった。 もうまとめるのは諦めることにして、その時のメモや雑多なコードから動くものを本稿に残しておく。 興味とヒマのある方は拾い読みしてほしい。 1. 開発言語からみた jsonb プログラマの立場からみて、普段の開発で使うORM/フレームワークと jsonb の相性はどうなのか。 ここでは代表的なプログラミング言語環境でさらっとイメージだけつかんでおきたい。 個人的に Docker がマイブーム(死語)なので、検証環境に Docker を活用したい。
PostgreSQL で json_array_elements を使って、JSON データ(オブジェクトの配列)を行として扱う方法SQLPostgreSQL はじめに これは PostgreSQL Advent Calendar 2016 の 12日目の記事です。 この記事では、私が PostgreSQL を使うことにしていてほんとよかったぁ、と思った件について書きます。 背景 今回のネタは JSON データ型に対するデータ分析です。 一般論として、JSON のようなゆるいデータ型を使うことはあまりデータベース設計上、良いこととされていません。 JSON データ型を使うと、テーブル設計が明確ではなくなってしまいます。 また、データ設計が正規化されなくなってしまいますので、冗長なデータの持ち方になってしまいます。 とはいえ、開発上、事前に適切なデータ設計をすることは難しいことがあります。
tl;dr 結論から言うと全然難しくないです。 読み込む時はjsonのキーを指定してintやstringで読み込むか、jsonを丸ごと取得して構造体にunmarshalします。 書き込むときも構造体をmarshalしてSQLに渡すだけです。 テーブルの用意 ユーザ、データベースの作成は割愛します。 $ psql -U test_user test_db test_db=> CREATE TABLE jojo ( id serial, chapter int, data json ); INSERT INTO jojo VALUES (1, '{ "title": "ファントムブラッド", "character": { "hero": "ジョナサン・ジョースター" } }'); INSERT INTO jojo VALUES (2, '{ "title": "戦闘潮流", "characte
こんにちは、ぬいぐるみが好きな方のDBAです。 MySQL 5.7では JSONデータ型 がサポートされ、今までTEXT型やBLOB型にJSONを入れていたのに比べて バイナリーフォーマット(らしい)容量が小さいのでTEXT型に比べて基本的にレイテンシーが低い何も考えなくても4バイト文字も入るというメリットがあります。 ( ´-`).oO(Generated Columnでインデックスが張れるとか、json_*関数でアクセスできるとかはTEXT型でもできるのでJSON型のメリットじゃないし、型としてのバリデーションも生JSONを自分で組み立てることはほとんどない(ライブラリー通すから)からあんまり旨味を感じない。。 というわけでwktkしながら作ったんですよ、JSON型カラム。 そしたら。 ギョザー: とりあえずConnector/JのあとのDBアクセスライブラリの結果はStringで、文
Postgres can store unstructured data such as arrays, json, and jsonb as of version 9.4. Ecto, Elixir’s database wrapper, provides first class support for serializing and deserializing Ecto structs and arrays into these native data types without sacrificing the expressiveness of Ecto models. Embedded records have all the things regular models have, such as structured fields, lifecycle callbacks, an
MySQL 5.7には150を超える新機能がある。 MySQLのマニュアルはとてもいいものだが、少し長すぎる。これは、新機能の箇条書きリストだ。それぞれの機能について1つずつまとめるように頑張ってある。なので、 InnoDBのネイティブパーティショニング については、InnoDBの項かパーティショニングの項のどちらかにだけ載っている。 MySQL 5.7.8 RC2はここからダウンロードできる それか、yumかaptのリポジトリーからもインストール可能だ。 レプリケーション関連 マルチソースレプリケーション(訳注: 1スレーブに複数マスターを設定可能になった) [ 1 ] オンラインでのGTIDの有効化 [ 1 2 3 ] 準同期レプリケーションの性能向上 [ 1 2 ] ロスレス準同期レプリケーション [ 1 2 ] 準同期レプリケーションでいくつのスレーブからACKが返ってくるまで待つ
PostgreSQL 9.2より追加されたJSON型だが、特徴を理解して適切に使わないと色々な副作用に悩まされることになる。その問題点を挙げると共に、どのような場合に使うべきかの指針を示す。 PostgreSQLは、データ型としてjsonをサポートしています。しかし、やりたいことがある時に何でもかんでもjson型を使ってしまうというのはやめるべきです。これは、hstoreや新しく登場したjsonb型にも同じことが言えます。これらの型は必要な時には便利なツールになりますが、PostgreSQLでデータのモデリングを行う際に最初に検討すべきものではありません。 なぜなら、データを呼び出したり操作したりするのが難しくなってしまうためです。 何もかも同じところに入れてしまおうとすることによるアンチパターンをご存知の読者もいるでしょう。EAVアンチパターンは、長らくデータベーススキーマにおける必要悪
By Nando Vieira February 17, 2015 Read in 8 minutes PostgreSQL 9.4 introduced jsonb, a new column type for storing documents in your relational database. jsonb and json columns look exactly the same on a higher level, but differs on the storage implementation. The advantage of using jsonb is that you can easily integrate relational and non-relation data, with performance that can be better than mo
Unlock innovation with highly secure, fully-managed Database-as-a-Service capabilities on IBM Cloud® IBM Cloud® Database-as-a-Service (DBaaS) services free developers and IT from complex and time-consuming tasks including deployment of infrastructure and database software, infrastructure operations, database software updates, and backup. IBM Cloud® Database SMEs deliver and maintain ready-to-use,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く