Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MySQL 8
Search
とみたまさひろ
May 23, 2018
Technology
0
110
MySQL 8
MySQL Innovation Day Tokyo 2018/5/23 のスライド
とみたまさひろ
May 23, 2018
Tweet
Share
More Decks by とみたまさひろ
See All by とみたまさひろ
文字列の並び順 / Unicode Collation
tmtms
3
590
夢の印税生活 / Life on Royalties
tmtms
0
330
文字列の並び順 / String Collation
tmtms
1
150
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
700
Ruby on Browser - RubyWorld Conference 2024
tmtms
1
1.3k
Ruby on Browser
tmtms
1
2k
私のRSpecの書き方 / How I write RSpec
tmtms
5
2.1k
ショートカットと端末 / shortcut & terminal
tmtms
2
930
文字ときどきRuby / Character and Ruby (NSEG)
tmtms
2
2.4k
Other Decks in Technology
See All in Technology
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
330
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
6
740
Python 3.14 Overview
lycorptech_jp
PRO
1
110
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
120
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
500
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
110
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
370
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
130
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
120
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
160
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.4k
品質のための共通認識
kakehashi
PRO
3
260
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Statistics for Hackers
jakevdp
799
230k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Producing Creativity
orderedlist
PRO
348
40k
[SF Ruby Conf 2025] Rails X
palkan
0
520
Done Done
chrislema
186
16k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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