Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MySQL 5.7のJSON型について | MySQL Casual Talks in Fuk...
Search
Manabu Matsuzaki
December 13, 2016
Technology
0
1.2k
MySQL 5.7のJSON型について | MySQL Casual Talks in Fukuoka vol.6 #mysql_casual_fukuoka /mysql-casual-talks-fukuoka-vol6
Manabu Matsuzaki
December 13, 2016
Tweet
Share
More Decks by Manabu Matsuzaki
See All by Manabu Matsuzaki
Spring BootユーザのためのArmeria入門 #jsug / Introduce to Armeria for Spring users
matsumana
0
2.8k
Canary Release with Argo Rollouts #ふくばねてす / canary-release-with-argo-rollouts
matsumana
1
1.1k
Getting started Central Dogma with Golang #fukuokago #umedago / getting-started-central-dogma-with-golang
matsumana
0
880
Micrometer入門 #javaq / introduce-to-micrometer
matsumana
1
2.9k
ArmeriaとCentral Dogmaから学ぶ、マイクロサービスに必要な機能 #edayfuk / lean-from-armeria-and-central-dogma
matsumana
0
4.3k
SREcon19 Americas 参加レポート #srefukuoka / srecon19-americas-report
matsumana
0
870
SRE入門 & チームで取り組んでいるSRE #srefukuoka / introduce-to-sre
matsumana
0
1.3k
Introduce to Armeria and Central Dogma #GWD_Nulab / introduce-to-armeria-and-central-dogma
matsumana
0
550
Connector/JでMaster/Slave Replication構成のMySQLに接続する #mysql_casual_fukuoka /connector-j-master-slave-replication
matsumana
0
1.5k
Other Decks in Technology
See All in Technology
SaaS公式MCPサーバーをリリースして得た学び
kawamataryo
5
1.5k
ITベンダーから見る内製化支援の本質/in-house-dev
slsops
1
190
「祝」Desktop Linux 元年 2025年度版
rlysleepynick
0
110
インフラからSREへ
mirakui
20
7.9k
君だけのオリジナル async / await を作ろう / TSKaigi 2025
susisu
1
1.4k
DataEngineeringとCloudNativeの今と未来
foursue
0
230
技術選定の仕方 - FLEXYウェビナー / How to select technology
shinden
1
130
Microsoft Fabric のライセンスについて
ryomaru0825
2
3.5k
スプリントゴールで価値を駆動しよう
takufujii
3
1.5k
若手中心の内製アジャイル開発で研究開発に挑戦 / 20250517 Nobuhiro Kawamura & Dami Lee & Tomohiko Tanikawa
shift_evolve
1
150
OCI Full Stack Disaster Recovery サービス概要
oracle4engineer
PRO
1
140
技術的負債を「戦略的投資」にするためのPdMとエンジニアの連携と実践
satomino
4
850
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
How to Ace a Technical Interview
jacobian
276
23k
Faster Mobile Websites
deanohume
307
31k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
KATA
mclloyd
29
14k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
How GitHub (no longer) Works
holman
314
140k
Docker and Python
trallard
44
3.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Writing Fast Ruby
sferik
628
61k
Transcript
MySQL 5.7 ͷJSONܕ ʹ͍ͭͯ MySQL Casual Talks in Fukuoka vol.6
2016/11/09 @matsumana
ࣗݾհ • ໊લɿ দ࡚ ֶ • ॴଐɿ LINE Fukuokaגࣜձࣾ ιϑτΣΞΤϯδχΞʢ։ൃɾӡ༻ʣ
• Twitterɿ @matsumana
ΞδΣϯμ • JSONܕͷಛ • Java͔ΒͬͯΈͨ
5.7͕ϦϦʔε͞Εͯ Ұ͕ա͗·ͨ͠Ͷ
MySQLͷྺ࢙ • MySQL 5.7 ʢ2015/10ϦϦʔεʣ • MySQL 5.6 ʢ2013/02ϦϦʔεʣ •
MySQL 5.5 ʢ2010/12ϦϦʔεʣ • MySQL 5.1 ʢ2008/11ϦϦʔεʣ • MySQL 5.0 ʢ2005/10ϦϦʔεʣ • MySQL 4.1 ʢ2004/10ϦϦʔεʣ • MySQL 4.0 ʢ2003/03ϦϦʔεʣ • MySQL 3.23 ʢ2001/01ϦϦʔεʣ • MySQL 3.23Ҏલ
5.7ͬͯ·͔͢ʁ
5.7Ͱ170Λ͑Δ ػೳՃมߋ͕ ؚ·Ε͍ͯ·͢
શ෦Ѳ͢Δͷ ΊͬͪΌେมͰ͕͢
͓͢͢Ίͷຊ͕ ͋Γ·͢
ॻ੶ൃߦͷ͓ΒͤɿৄղMySQL 5.7 ʙਐԽͨ͠MySQLΛΑ͘ΔͨΊͷςΫχΧϧΨΠυʙ
͜ΕΛಡΜͩΒ 5.7Λ͍ͨ͘ͳΔͣ :)
ࠓճJSONܕʹ͍ͭͯ ௐͯདྷ·ͨ͠
MySQLͷJSONܕͷಛ • ετϨʔδΤϯδϯ্BLOBͱͯ֨͠ೲ͞Ε͍ͯΔ • JSON pathͰjsonͷ߲ΛࢀরͰ͖Δ • ->ԋࢉࢠ͕͋ΔͷͰɺSQL͕ͪΐͬͱݟ͍͢ • generated
columnػೳͱ߹Θͤͯ͏ͱɺjsonͷ߲ʹ ΠϯσοΫεషΕͨΓɺ੍Λ͚ͨΓग़དྷΔ
Java͔ΒͬͯΈͨ • αϯϓϧΞϓϦͷιʔε https://github.com/matsumana/mysql-json-sandbox • ڥ • OSɿ CentOS 7.2
(1511) • MySQLɿ 5.7.16 Community Edition • JDBC Driverɿ Connector/J 5.1.40 • Java8 (1.8.0_111) • Frameworkɿ Spring Boot 1.4.1 • ORMɿ MyBatis 3.4.0
αϯϓϧΞϓϦΛ σϞ͠ͳ͕Β આ໌͍͖ͯ͠·͢
ҙ • JSONܕΛ͑σʔλΛॊೈʹѻ͑ͯ ศརͦ͏Ͱ͋Γ·͕͢ɺԿͰ͔ΜͰ1ͭͷΧϥϜʹೖΕ ͯ͠·͏ઃܭɺʮEAVΞϯνύλʔϯʯͱݺΕ͍ͯ·͢ ˞ࢀߟ PostgreSQLͷΞϯνύλʔϯ : ԿͰ͔ΜͰjsonʹೖΕΔ
ϦϯΫू • MySQL :: MySQL 5.7 Reference Manual :: 12.6
The JSON Data Type • ॻ੶ൃߦͷ͓ΒͤɿৄղMySQL 5.7 ʙਐԽͨ͠MySQLΛΑ͘Δ ͨΊͷςΫχΧϧΨΠυʙ • MySQL 5.7.8͔ΒInnoDBͷgenerated column࣮ମΛऔΒͣʹΠϯ σοΫεΛ࡞ΕΔΑ͏ʹͳͬͨ • PostgreSQLͷΞϯνύλʔϯ : ԿͰ͔ΜͰjsonʹೖΕΔ • SQLΞϯνύλʔϯ • αϯϓϧΞϓϦͷιʔε