MySQL Weekly

毎週月曜朝10時ころ更新、1週間のMySQL情報をまとめます

Update for last week (2019-10-14 ~ 2019-10-20)

MySQL Weeklyでは1週間ごとにMySQLのrelease-note, bug, official blog, organizationによるblog, 個人のblogをまとめ紹介しています。
更新は月曜 10時(AM)です。先週一週間のMySQL関連の更新を再確認するのにご活用ください。

また、このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)

せっかくの8.0.18リリースの週ですが、体調不良で各種ブログは読めませんでした。
今週水曜日までにコメントを追加予定です。 追加しました。
Personal blogは今回はskipします。

Release note

(https://dev.mysql.com/doc/relnotes/mysql/8.0/en/)

8.0.18

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-18.html

影響ありそうなものをピックアップ!!

  • Account Management Notes
  • Configuration Notes
    • CMakeオプション等で変更
    • wolfSSLをサポートしなくなりOpenSSLのみ
  • Connection Control Notes
  • Deprecation and Removal Notes
    • MYSQL_PWDがdeprecateに指定された
  • Keyring Notes
    • HashiCorp Vaultのkeyring_hashicorpプラグインが利用可能になった
  • Optimizer Notes
    • Hash joinが実装された
      • indexのないテーブルで等価条件でのjoinで有効
      • optimizer switch, optimizer hintで有効無効をコントロール可能
      • hash joinに使われるメモリサイズはjoin_buffer_sizeでコントロール可能
      • メモリに乗り切らない場合はopen_file_limitを調整する必要がある
      • hash joinされたかどうかはexplain format=treeexplain analyzeで確認可能
      • 詳しくはHash Join Optimization
    • EXPLAIN ANALYZEで、iterator-basedなtimingやコストなどの情報が取得可能になった
    • 型が一致しないクエリでキャストオペレーションが入る
      • 一時的な型(temporal types)と数値型の比較はDOUBLEとして、DATE, TIME, DATETIME同士での比較はDATETIMEとして暗黙的にキャストされる
      • 例えばSELECT * FROM t1 JOIN t2 ON t1.int_col = t2.date_col このクエリはSELECT * FROM t1 JOIN t2 ON CAST(t1.int_col AS DOUBLE) = CAST(t2.date_col AS DOUBLE)のように書き換えられる
      • これらのキャストがどのように起きたかはexplainで実行したあとにshow warningsすることで見ることができる
  • Packaging Notes
  • Pluggable Authentication
  • Spatial Data Support
  • sys Schema Notes
    • sys.schema_unused_indexesからunque indexが排除される
    • sys.ps_is_consumer_enabled()関数がNULLでない未知の値を渡されたときにerrorを返すように修正
    • sys schemaが別のgit repositoryではなく、scripts/sys_schemaで管理されるようになった
  • Functionality Added or Changed
    • innodb_idle_flush_pct変数でアイドル時のpage flushを制御可能になった
    • group replicationへの改善
      • TLSv1.3のサポート(MySQL Serverでは8.0.16からサポート)
      • group_replication_exit_state_actionでOFFLINE_MODEが指定可能になった
    • PRIVILEGE_CHECKS_USERでreplication channelに流れてくるトランザクションに実行権限があるか確認可能
    • relay log info logとmaster info logがdeprecatedになったので、relay_log_info_file system variableと、--master-info-fileオプションもdeprecatedに変更
    • --slave-rows-search-algorithmsオプションと、slave_rows_search_algorithms変数がdeprecated
    • WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()がdeprecatedにこれを利用している場合はWAIT_FOR_EXECUTED_GTID_SET()を使うように(failoevrなどで別のチャネルやクライアントから接続された場合にハングする可能性がある)
    • Protobuf librariesがdynamic linkされるようになった
  • Bugs Fixed
    • later

5.7.28

5.6.46

Bugs

基本的にMySQL Server, 5.7以上のbug fixのみまとめます

  1. serverity >= S5(Performance)でupdatedでdesc sort、結果の今週分
  2. Status == ClosedID#でdesc sort、結果の今週分を見る

Bug #97185 Remove dead code from ST_SCHEMA_TABLE

Remove dead code from ST_SCHEMA_TABLE

  • ST_SCHEMA_TABLE構造体がInformation Schemaのためにあるが、使われていない
  • 8.0.20で削除予定

Organization blogs

Personal blogs


このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)