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

罠と呼ぶには大したことのない(フィクションの)MySQL 8.0のはなし

yoku0825
December 01, 2019

罠と呼ぶには大したことのない(フィクションの)MySQL 8.0のはなし

2019/12/01 PHP Conference Japan (after party)
https://phpcon.connpass.com/event/151402/

yoku0825

December 01, 2019
Tweet

More Decks by yoku0825

Other Decks in Technology

Transcript

  1. collation_server collation mysql = MySQL ハハ != パパ びょういん !=

    び よういん != MySQL = MyS QL = != ≠ utf8mb4_ge neral_ci o o o x x o utf8mb4_09 00_ai_ci o x x o o x utf8mb4_ja_ 0900_as_cs x o o o o o utf8mb4_bin x o o o x o 9/31
  2. information_schema_stats_expiry SHOW TABLE STATUS の結果をキャッシュするよ! デフォルトは 86400 秒 = 1日だよ!

    「誰得」 日々の覚書: MySQL 8.0のSHOW TABLE STATUSが全然更新されない件 11/31
  3. innodb_autoinc_lock_mode 「デフォルトが2になった」 「なるとどうなるの?」 「同時に INSERT INTO .. や LOAD DATA

    INFILE .. で連番を払い出そうとすると混 じる」 「マジか」 日々の覚書: innodb_autoinc_lock_mode = 1 vs 2 でバルクインサートが競合し た時のAUTO_INCREMENTの挙動が違うはなし 12/31
  4. local_infile 「 LOAD DATA LOCAL INFILE を使うには local_infile = 1

    を明示的に設定しない といけなくなった」 「面倒」 「しかもこれ mysql コマンドラインクライアント側でも有効にする必要がある」 「何それ」 「両方とも同じ名前の別のパラーメーター」 日々の覚書: MySQL 8.0でLOAD DATA LOCAL INFILEが “ERROR 1148 (42000): The used command is not allowed with this MySQL version” で失 敗する時 16/31
  5. master_info_repository, relay_log_info_repository 「バージョンアップしてから master.info と relay-log.info が消えた…」 「 mysql スキーマの

    slave_master_info テーブルと slave_relay_log_info テーブ ルに記録されてるで」 「オフラインで参照するのが難しくなった…」 22/31
  6. 増える予約語 「ADMINがダメになったんだっけ?」 「そういうレベルでなく「増えてる」」 version 予約語 8.0.0 ROLE 8.0.1 GROUPING, RECURSIVE,

    OF, CUBE 8.0.2 ROW, CUME_DIST, DENSE_RANK, FIRST_VALUE, GROUPS, LAG, LAST_VALUE, LEAD, NTH_VALUE, NTILE, OVER, PERCENT_RANK, RANK, ROW_NUMBER, WINDOW 8.0.14 LATERAL 8.0.17 ARRAY, MEMBER 29/31
  7. 増える予約語 増えるだけじゃなくてたまに「減ってる」 心のMockだけじゃなくて 本物のMySQLを使った回帰テストを書くのが超オスス メ 個人的には「英2単語以上を “_” 区切り」ならそうそう食らわないし ‐ どうしても1単語にするなら先頭に

    “_” をつけておくと回避率が高い ‐ SELECT * FROM information_schema.keywords WHERE reserved = 1 の結果を比較したい… と思ったら “ARRAY” を information_schema.keywords にリストするの忘れた、とかいうバグ修正があって草w ww https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-18.html ‐ 30/31