Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MySQL 8

MySQL 8

MySQL Innovation Day Tokyo 2018/5/23 のスライド

とみたまさひろ

May 23, 2018
Tweet

More Decks by とみたまさひろ

Other Decks in Technology

Transcript

  1. MySQL 8
    MySQL 8
    MySQL Innovation Day Tokyo
    2018/05/23
    とみたまさひろ
    1

    View full-size slide

  2. 自己紹介
    自己紹介
    とみたまさひろ
    日本MySQLユーザ会
    趣味
    文字化け
    MySQLプロトコル
    http://tmtms.hatenablog.com
    http://twitter.com/tmtms
    2

    View full-size slide

  3. MySQL 8
    🎉🎉🎉
    MySQL 8
    🎉🎉🎉
    3

    View full-size slide

  4. MySQL 8
    多くの新機能がありますが…
    4

    View full-size slide

  5. MySQL恒例「RCとはいったい…」案件
    MySQL恒例「RCとはいったい…」案件
    5

    View full-size slide

  6. 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

    View full-size slide

  7. mysqlshのプロンプトが派手に
    mysqlshのプロンプトが派手に
    7

    View full-size slide

  8. MySQL Parameters
    MySQL Parameters
    バージョン間のパラメータ値を比較
    https://tmtm.github.io/mysql-params
    5.7 と 8.0 の比較
    8

    View full-size slide

  9. 文字コードまわり
    文字コードまわり
    9

    View full-size slide

  10. ujis,sjis,eucjpms,cp932 はもう要らない
    ujis,sjis,eucjpms,cp932 はもう要らない
    (個人の感想です)
    (個人の感想です)
    10

    View full-size slide

  11. Default Charset
    Default Charset
    5.7 latin1 ISO8859-1 (欧米の文字)
    8.0 utf8mb4 Unicode (世界中の文字)
    デフォルトのままで日本語や絵文字が使える
    11

    View full-size slide

  12. 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

    View full-size slide

  13. 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

    View full-size slide

  14. Collation name
    Collation name
    ai Accent Insensitive
    as Accent Sensitive
    ci Case Insensitive
    cs Case Sensitive
    ks Kana Sensitive
    14

    View full-size slide

  15. デフォルトCollationの違い
    デフォルトCollationの違い
    5.7: utf8mb4_general_ci
    A=a, A=a, や≠ゃ
    は≠ぱ≠ば
    あ≠ア
    🍣=
    🍺
    8.0: utf8mb4_0900_ai_ci
    A=a, A=a, や=ゃ
    は=ぱ=ば
    あ=ア
    🍣≠
    🍺
    15

    View full-size slide

  16. Charset=utf8mb4 を指定しただけでは
    Charset=utf8mb4 を指定しただけでは
    5.7 と 8.0 で動きが異なるので注意
    5.7 と 8.0 で動きが異なるので注意
    16

    View full-size slide

  17. 新しいCollationたち
    新しいCollationたち
    17

    View full-size slide

  18. utf8mb4_0900_ai_ci
    utf8mb4_0900_ai_ci
    アクセントの違いを区別しない
    はは = ぱぱ = ばば
    大文字小文字を区別しない
    びょういん = びよういん
    いろは = イロハ
    株式会社 =

    18

    View full-size slide

  19. utf8mb4_0900_
    utf8mb4_0900_as
    as_ci
    _ci
    アクセントの違いを区別する
    はは ≠ ぱぱ ≠ ばば
    大文字小文字を区別しない
    びょういん = びよういん
    いろは = イロハ
    株式会社 =

    19

    View full-size slide

  20. utf8mb4_0900_as_
    utf8mb4_0900_as_cs
    cs
    アクセントの違いを区別する
    はは ≠ ぱぱ ≠ ばば
    大文字小文字を区別する
    びょういん ≠ びよういん
    いろは ≠ イロハ
    株式会社 ≠

    utf8mb4_bin と同じ?? (違います)
    20

    View full-size slide

  21. utf8mb4_
    utf8mb4_ja
    ja_0900_as_cs
    _0900_as_cs
    アクセントの違いを区別する
    はは ≠ ぱぱ ≠ ばば
    大文字小文字を区別する
    びょういん ≠ びよういん
    株式会社 ≠

    カタカナひらがなを区別しない
    いろは = イロハ
    21

    View full-size slide

  22. utf8mb4_ja_0900_as_cs_
    utf8mb4_ja_0900_as_cs_ks
    ks
    アクセントの違いを区別する
    はは ≠ ぱぱ ≠ ばば
    大文字小文字を区別する
    びょういん ≠ びよういん
    株式会社 ≠

    カタカナひらがなを区別する
    いろは ≠ イロハ
    utf8mb4_0900_as_cs と同じ??
    22

    View full-size slide

  23. utf8mb4_0900 と utf8mb4_
    utf8mb4_0900 と utf8mb4_ja
    ja_0900
    _0900
    の違い
    の違い
    23

    View full-size slide

  24. ソート順
    ソート順
    mysql> select hex(s),s from ja order by s;
    +--------+------+
    | hex(s) | s |
    +--------+------+
    | E4BA9C | 亜 |
    | E4BC8A | 伊 |
    | E99BA8 | 雨 |
    | E6A084 | 栄 |
    | E5A5A5 | 奥 |
    +--------+------+
    24

    View full-size slide

  25. 長音
    長音
    mysql> select s from ja order by s;
    +--------+
    | s |
    +--------+
    | あー |
    | ああ |
    | あい |
    | いあ |
    | いー |
    | いい |
    | うあ |
    | うい |
    | うー |
    +--------+
    25

    View full-size slide

  26. ja_0900 は JIS順
    ja_0900 は JIS順
    日本語辞書順
    日本語辞書順
    26

    View full-size slide

  27. utf8mb4_0900_as_csが一番無難?
    utf8mb4_0900_as_csが一番無難?
    utf8mb4_binでもいいかも
    utf8mb4_binでもいいかも
    27

    View full-size slide

  28. まとめ
    まとめ
    Charsetのデフォルトがutf8mb4で便利!
    日本語Collationが増えた!
    適切なCollationを使おう!
    28

    View full-size slide