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 8
Search
とみたまさひろ
May 23, 2018
Technology
0
100
MySQL 8
MySQL Innovation Day Tokyo 2018/5/23 のスライド
とみたまさひろ
May 23, 2018
Tweet
Share
More Decks by とみたまさひろ
See All by とみたまさひろ
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
580
Ruby on Browser - RubyWorld Conference 2024
tmtms
1
1.1k
Ruby on Browser
tmtms
1
1.9k
私のRSpecの書き方 / How I write RSpec
tmtms
5
2k
ショートカットと端末 / shortcut & terminal
tmtms
2
850
文字ときどきRuby / Character and Ruby (NSEG)
tmtms
2
2.2k
文字ときどきRuby / Character and Ruby
tmtms
0
950
Linux用キーリマッパーを作る技術 / How to make Key Remapper
tmtms
0
500
MIMEヘッダエンコーディングは複雑すぎてつらい / MIME header encoding is hard
tmtms
3
1.5k
Other Decks in Technology
See All in Technology
Sansanのデータプロダクトマネジメントのアプローチ
sansantech
PRO
0
230
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
180
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
280
AIの全社活用を推進するための安全なレールを敷いた話
shoheimitani
2
640
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
18
7k
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
350
NewSQLや分散データベースを支えるRaftの仕組み - 仕組みを理解して知る得意不得意
hacomono
PRO
3
230
Claude Code に プロジェクト管理やらせたみた
unson
8
4.9k
CDK Vibe Coding Fes
tomoki10
1
530
AI エージェントと考え直すデータ基盤
na0
18
7.3k
DatabricksにOLTPデータベース『Lakebase』がやってきた!
inoutk
0
150
microCMSではじめるAIライティング
himaratsu
0
120
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Docker and Python
trallard
45
3.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Visualization
eitanlees
146
16k
Building Applications with DynamoDB
mza
95
6.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
Designing for humans not robots
tammielis
253
25k
Transcript
MySQL 8 MySQL 8 MySQL Innovation Day Tokyo 2018/05/23 とみたまさひろ
1
自己紹介 自己紹介 とみたまさひろ 日本MySQLユーザ会 趣味 文字化け MySQLプロトコル http://tmtms.hatenablog.com http://twitter.com/tmtms 2
MySQL 8 🎉🎉🎉 MySQL 8 🎉🎉🎉 3
MySQL 8 多くの新機能がありますが… 4
MySQL恒例「RCとはいったい…」案件 MySQL恒例「RCとはいったい…」案件 5
utf8の指定でwarning utf8の指定でwarning mysql> set names utf8; Query OK, 0 rows
affected, 1 warning (0.00 sec) Warning (Code 3719): 'utf8' is currently an alias for r set UTF8MB3, which will be replaced by UTF8MB4 in a se. Please consider using UTF8MB4 in order to be unamb 6
mysqlshのプロンプトが派手に mysqlshのプロンプトが派手に 7
MySQL Parameters MySQL Parameters バージョン間のパラメータ値を比較 https://tmtm.github.io/mysql-params 5.7 と 8.0 の比較
8
文字コードまわり 文字コードまわり 9
ujis,sjis,eucjpms,cp932 はもう要らない ujis,sjis,eucjpms,cp932 はもう要らない (個人の感想です) (個人の感想です) 10
Default Charset Default Charset 5.7 latin1 ISO8859-1 (欧米の文字) 8.0 utf8mb4
Unicode (世界中の文字) デフォルトのままで日本語や絵文字が使える 11
utf8mb4 Collations utf8mb4 Collations 文字の照合規則 日本語環境で使われそうなもの utf8mb4_bin utf8mb4_general_ci (5.7 デフォルト)
utf8mb4_unicode_ci utf8mb4_unicode_520_ci utf8mb4_0900_ai_ci (8.0 デフォルト) utf8mb4_0900_as_ci utf8mb4_0900_as_cs utf8mb4_ja_0900_as_cs utf8mb4_ja_0900_as_cs_ks 12
Collation name Collation name bin コードのまま general MySQL独自規則 unicode Unicode
4.0.0 unicode_0520 Unicode 5.2.0 0900 Unicode 9.0.0 ja_0900 Unicode 9.0.0 + 日本語 13
Collation name Collation name ai Accent Insensitive as Accent Sensitive
ci Case Insensitive cs Case Sensitive ks Kana Sensitive 14
デフォルトCollationの違い デフォルトCollationの違い 5.7: utf8mb4_general_ci A=a, A=a, や≠ゃ は≠ぱ≠ば あ≠ア 🍣=
🍺 8.0: utf8mb4_0900_ai_ci A=a, A=a, や=ゃ は=ぱ=ば あ=ア 🍣≠ 🍺 15
Charset=utf8mb4 を指定しただけでは Charset=utf8mb4 を指定しただけでは 5.7 と 8.0 で動きが異なるので注意 5.7 と
8.0 で動きが異なるので注意 16
新しいCollationたち 新しいCollationたち 17
utf8mb4_0900_ai_ci utf8mb4_0900_ai_ci アクセントの違いを区別しない はは = ぱぱ = ばば 大文字小文字を区別しない びょういん
= びよういん いろは = イロハ 株式会社 = ㍿ 18
utf8mb4_0900_ utf8mb4_0900_as as_ci _ci アクセントの違いを区別する はは ≠ ぱぱ ≠ ばば
大文字小文字を区別しない びょういん = びよういん いろは = イロハ 株式会社 = ㍿ 19
utf8mb4_0900_as_ utf8mb4_0900_as_cs cs アクセントの違いを区別する はは ≠ ぱぱ ≠ ばば 大文字小文字を区別する
びょういん ≠ びよういん いろは ≠ イロハ 株式会社 ≠ ㍿ utf8mb4_bin と同じ?? (違います) 20
utf8mb4_ utf8mb4_ja ja_0900_as_cs _0900_as_cs アクセントの違いを区別する はは ≠ ぱぱ ≠ ばば
大文字小文字を区別する びょういん ≠ びよういん 株式会社 ≠ ㍿ カタカナひらがなを区別しない いろは = イロハ 21
utf8mb4_ja_0900_as_cs_ utf8mb4_ja_0900_as_cs_ks ks アクセントの違いを区別する はは ≠ ぱぱ ≠ ばば 大文字小文字を区別する
びょういん ≠ びよういん 株式会社 ≠ ㍿ カタカナひらがなを区別する いろは ≠ イロハ utf8mb4_0900_as_cs と同じ?? 22
utf8mb4_0900 と utf8mb4_ utf8mb4_0900 と utf8mb4_ja ja_0900 _0900 の違い の違い
23
ソート順 ソート順 mysql> select hex(s),s from ja order by s;
+--------+------+ | hex(s) | s | +--------+------+ | E4BA9C | 亜 | | E4BC8A | 伊 | | E99BA8 | 雨 | | E6A084 | 栄 | | E5A5A5 | 奥 | +--------+------+ 24
長音 長音 mysql> select s from ja order by s;
+--------+ | s | +--------+ | あー | | ああ | | あい | | いあ | | いー | | いい | | うあ | | うい | | うー | +--------+ 25
ja_0900 は JIS順 ja_0900 は JIS順 日本語辞書順 日本語辞書順 26
utf8mb4_0900_as_csが一番無難? utf8mb4_0900_as_csが一番無難? utf8mb4_binでもいいかも utf8mb4_binでもいいかも 27
まとめ まとめ Charsetのデフォルトがutf8mb4で便利! 日本語Collationが増えた! 適切なCollationを使おう! 28