MySQL Weekly

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

Update for last week (2019-07-22 ~ 2019-07-28)

Release note

8.0.17, 5.7.27, 5.6.45がリリースされました!!! 新しいMaintenance Release()によって大量のエントリがあるので、重要な、もしくは面白い機能をリストアップします。

今回から更新のあったMySQL High Availability ブログもOrganizationブログに追加しました! また、Categoryを作成してタグ付けすることにしました。

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

Changes in MySQL 8.0.17 (2019-07-22, General Availability)

  • Character Set Support
    • utf8mb4 character-setにutf8mb4_0900_binが追加
  • Componene Notes
    • mysql_current_thread_readerコンポーネントが利用可能
      • 実行中のthreadの情報を取得可能できそう(詳細は未調査)
  • Configuration Notes
    • ホスト名にASCII文字で255文字まで利用可能
  • Debugging Notes
    • LOCK ORDERツールの提供
      • lock-order dependency graphをlock_order_dependencies.txtによって自分で作成することでサーバデザインとして、ロックの順序をコントロールできる(!?)
      • MySQLコンパイル時(CMAKE時)にWITH_LOCK_ORDERをつけてコンパイルする必要がある
  • Deprecation and Removal Notes (今回のリリースでRemovalはない)
    • FLOAT(M,D), DOUBLE(M,D)のシンタックスがdeprecated
    • 文字列データ型におけるBINARY属性をdeprecated, _bincollationがあるのでこれを利用すること
    • AND, OR, NOT演算子のシノニムである&&, ||, !がdeprecated
    • ZEROFILL属性がdeprecated, プログラムから明示的にLPAD()等を使うように
    • FLOAT,DOUBLE, DECIMALとそのシノニムの型においてUNSIGNED属性はdeprecated
    • FLOAT, DOUBLEとそのシノニムにおいてAUTO_INCREMENTのサポートはdeprecated
    • SQL_CALC_FOUND_ROSとFOUND_ROWS() functionはdeprecated
  • Packageing Notes
    • EL8/Fedora, Debianmysql-community-serverとdebut, testようのパッケージが分割された
  • Performance Scehma Notes
    • Performance_schemaのinstrumentationにおける、rwlockという名前だったpriority read/write locksはprlockに変更され、wait/synch/prlockから始まるように変更。またunlock操作の情報もていきょうされるようになる
  • Plugin Notes
    • keyring pluginのように--early-plugin-loadオプションを指定してInnoDBが初期化される前に呼ばれる必要のあるプラグインのために、plugin descriptionにPLUGIN_OPT_ALLOW_EARLYflagが利用可能
  • Functionality Added or Changed
  • Bugs Fixed
    • many...

Changes in MySQL 5.7.27 (2019-07-22, General Availability)

おそらく来週

Changes in MySQL 5.6.45 (2019-07-22, General Availability)

P-Rお待ちしていますm(_ _ )m MySQL-weekly repository

Bugs

serverity >= S5(Performance)でupdatedでdesc sort、結果の今週分を見る

条件を適用した検索結果

  • Accelerated AES with ARMv8 Crypto Extensions in yaSSL
    • status: Won't fix
    • ARMv8固有の暗号化拡張(cryptography extensions)を利用することでAESを高速化できるという提案
    • EnvironmentPlatform \ Caseの部分は伏せ字になっているのか文字化けしているのか、こういうものなのか私の知識ではわからない
    • 経緯を追ってみるとなにやら面白いけど最終的にYaSSL support will be removed in an upcoming release.となって終わっている

Organization blogs

  • MySQL server blog: https://mysqlserverteam.com/
    • The MySQL 8.0.17 Maintenance Release is Generally Available
      • MySQL Server Blogによる8.0.17 Maintenance Releaseの告知
      • Provisioning by Cloning: Clone Pluginについての紹介, Clone local replica, Clone remote replica, Clone Remote provisioning, Clone Replication Coordinates, Suport cloning encrypted databaseが簡単に紹介されている
      • Multi-valued indexes: 1ドキュメント内のJSON arrayの中身の複数の値にindexが貼れるようになった
      • JSON Schema: JSON_SCHEMA_VALID(), JSON_SCHEMA_VALIDATION_REPORT()の追加
      • Optimizer improvements: NOT EXISTS, NOT INがanti-semi-joinに書き換えられるようになった
      • Volcano iterator: Volcano modelに基づいて、コードがシンプルになっている. これはhash joinや EXPLAIN, EXPLAIN ANALYZEを改良するための前準備だそう
      • Character Sets: Character setsとなっているがCollationの話、utf8mb4_binと同等だがソートが速いutf8mb4_0900_binが追加
      • Replication: binlog-cacheから溢れてテンポラリファイルに書き出したbinlogも暗号化されるようになった
      • Group Replication: Clone pluginを取り込んだリカバリ機能
      • Router: MySQL Routerのモニタリング基盤の追加とモニタリング用のRESTインターフェースの追加
      • MTR testsuite: MyISAMが必要だったテストケースを分離
      • Other/Deprecation: いろいろ
    • MySQL Shell 8.0.17 – What’s New?
      • MySQL Shell 8.0.17の新機能紹介
      • 特にドキュメントへのリンクがあるわけではないのでかじょうがきの 変更リストを見たい場合は見ると良さそう
    • MySQL InnoDB Cluster – What’s new in Shell AdminAPI 8.0.17 release
      • MySQL ShellのAdminAPIの新機能紹介
      • AdminAPIを使ったAutomatic Node Provisioningがコマンド付きで詳細に解説されている
    • Clone: Create MySQL instance replica
      • Clone pluginを使ったクローンの作成の解説
      • これに従ってやれば一旦クローンを作成してみることができる
    • MySQL Shell Plugins – Introduction
      • タイトル通りMySQL Shell pluginの導入
      • Shell pluginを使ってJavaScriptでカスタムな情報を加えるサンプルが紹介されている

  • MySQL High Availability blog: https://mysqlhighavailability.com/
    • MySQL 8.0.17 Replication Enhancements

      • Enhanced Group Replication distributed recovery with automated instance cloning.
        • Copy pluginによるによるCloneの作成とGroup Replicationでのmember追加についての紹介
      • Enhanced cross-version inter-operability for Group Replication.
        • Group Replicationにおいて、バージョン間の際をうまく扱うための改善があったらしい、詳細は不明
      • Encryption of conditional and temporary, on-disk, binary log capture cache.
        • bufferから溢れてdiskに落ちたbinlogも暗号化されるようになった
      • Protocol compression support for mysqlbinlog.
        • mysqlbinlogでリモートサーバからbinlogをfetchするときに暗号化することができる
    • MySQL InnoDB Cluster – Automatic Node Provisioning

      • MySQL InnoDB Cluster環境でMySQL Shellを使ってAutomatic Node Provisioningするデモ動画
    • Automatic provisioning in Group Replication

      • Group replication, Clone pluginを使う際に新しく入ったgroup_replication_clone_threshold、Purged Data, Credentialについての紹介
    • A Breakthrough in Usability – Automatic Node Provisioning
      • 2つ前のblogで公開されたdemo動画 (MySQL InnoDB Cluster – Automatic Node Provisioning)のより詳細な解説
      • ここでDistributed recoveryとClone Pluginの違いや挙動の説明が読める
      • この記事を読んでClone pluginがlogical backupではなくphysical backupをとっていることがわかった
      • group replicationにおいて、MySQL Shellを使って<Cluster>.addInstance()を実行してからの挙動のフローチャートもあり、このあたりの操作の整理がされている
    • mysqlbinlog: support for protocol compression
      • mysqlbinlogでリモートサーバからbinlogを取得する際に--compress or -Cで圧縮することが可能
    • Binary Log Encryption: Encryption of Temporary Capture Files
      • binlogを吐く際にbufferから溢れたbinlogをTemporary fileに吐くときにこれまではそれを暗号化することができるようになった
    • Improved handling of different member versions in Group Replication
      • Group Replication内では基本的に8.0.17からパッチバージョンが同じもののみしかサポートされない、しかしローリングアップデートの際などは複数のバージョンが混在する場合がある。その際のPrimary member selectionやcompatibility, Upgrade作業に関する情報
      • 筆者がGroup Replicationに詳しくないので、詳細はリンクへ。


Personal blogs


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