Slide 1

Slide 1 text

MySQL 5.7 ͷJSONܕ ʹ͍ͭͯ MySQL Casual Talks in Fukuoka vol.6 2016/11/09 @matsumana

Slide 2

Slide 2 text

ࣗݾ঺հ • ໊લɿ দ࡚ ֶ • ॴଐɿ LINE Fukuokaגࣜձࣾ
 ιϑτ΢ΣΞΤϯδχΞʢ։ൃɾӡ༻ʣ • Twitterɿ @matsumana

Slide 3

Slide 3 text

ΞδΣϯμ • JSONܕͷಛ௃ • Java͔Β࢖ͬͯΈͨ

Slide 4

Slide 4 text

5.7͕ϦϦʔε͞Εͯ Ұ೥͕ա͗·ͨ͠Ͷ

Slide 5

Slide 5 text

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Ҏલ

Slide 6

Slide 6 text

5.7࢖ͬͯ·͔͢ʁ

Slide 7

Slide 7 text

5.7Ͱ͸170Λ௒͑Δ ػೳ௥Ճ΍มߋ͕ ؚ·Ε͍ͯ·͢

Slide 8

Slide 8 text

શ෦೺Ѳ͢Δͷ͸ ΊͬͪΌେมͰ͕͢

Slide 9

Slide 9 text

͓͢͢Ίͷຊ͕ ͋Γ·͢

Slide 10

Slide 10 text

ॻ੶ൃߦͷ͓஌ΒͤɿৄղMySQL 5.7 ʙਐԽͨ͠MySQLΛΑ͘஌ΔͨΊͷςΫχΧϧΨΠυʙ

Slide 11

Slide 11 text

͜ΕΛಡΜͩΒ 5.7Λ࢖͍ͨ͘ͳΔ͸ͣ :)

Slide 12

Slide 12 text

ࠓճ͸JSONܕʹ͍ͭͯ ௐ΂ͯདྷ·ͨ͠

Slide 13

Slide 13 text

MySQLͷJSONܕͷಛ௃ • ετϨʔδΤϯδϯ্͸BLOBͱͯ֨͠ೲ͞Ε͍ͯΔ • JSON pathͰjsonͷ߲໨ΛࢀরͰ͖Δ • ->ԋࢉࢠ͕͋ΔͷͰɺSQL͕ͪΐͬͱݟ΍͍͢ • generated columnػೳͱ߹Θͤͯ࢖͏ͱɺjson಺ͷ߲໨ʹ ΠϯσοΫεషΕͨΓɺ੍໿Λ෇͚ͨΓग़དྷΔ

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

αϯϓϧΞϓϦΛ σϞ͠ͳ͕Β આ໌͍͖ͯ͠·͢

Slide 16

Slide 16 text

஫ҙ఺ • JSONܕΛ࢖͑͹σʔλΛॊೈʹѻ͑ͯ
 ศརͦ͏Ͱ͸͋Γ·͕͢ɺԿͰ΋͔ΜͰ΋1ͭͷΧϥϜʹೖΕ ͯ͠·͏ઃܭ͸ɺʮEAVΞϯνύλʔϯʯͱݺ͹Ε͍ͯ·͢
 ˞ࢀߟ
 PostgreSQLͷΞϯνύλʔϯ : ԿͰ΋͔ΜͰ΋jsonʹೖΕΔ

Slide 17

Slide 17 text

ϦϯΫू • 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Ξϯνύλʔϯ • αϯϓϧΞϓϦͷιʔε