Update for last week (2020-04-27~ 2020-05-03)
MySQL Weeklyでは1週間ごとにMySQLのrelease-note, bug, official blog, organizationによるblog, 個人のblogをまとめ紹介しています。 更新は月曜 10時(AM)です。先週一週間のMySQL関連の更新を再確認するのにご活用ください。
また、このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)
Release note
Changes in MySQL 8.0.20 (2020-04-27, General Availability)
Account Management Notes
- 以前はroutineの定義を確認するにはglobalのselect権限だけがあればよかったが、これは権限範囲が広すぎるため、
SHOW_ROUTINE
権限を導入しより細かい権限制御が可能になった
Compilation Notes
- solarisでClangでもコンパイルできるようになった。(実験的なもので、production readyではない)
- EL7, EL8環境ではGCC8の前にGCC9でコンパイルできるか確認するようになった。
- Windows環境ではVisual Studio 2019がサポートされた環境であると表示するようになった
Deprecation and Removal Notes
- JSON_TABLE()関数を呼び出すときに
ON EMPTY
とON ERROR
の指定はどの順番でもできたが、これはSQL標準に反し、ON ERROR
の前にON EMPTY
を書かないといけないということからこれは非推奨になり、warningが出るようになった max_length_for_sort_data
はdeprecatedINSERT ... ON DUPLICATE KEY UPDATE
内で利用されるVALUES()
はdeprecatedで、今後のバージョンで完全に廃止予定
JSON Notes
rapidjson
ライブラリがupdateされた
Logging Notes
SIGHUP
シグナルと受けたときにerror logにstatusを書き込むのをやめた- JSON-formatのerror logでts(timestamp)の書き込みも行われるようになった
Optimizer Notes
- Hash joinが以下のような状況でも適用されるようになった
- Inner non-equi-joins
- Semijoins
- Antijoins
- Left outer joins
- Right outer joins
- インデックスレベルのoptimizer hintが追加された
- JOIN_INDEX
- NO_JOIN_INDEX
- GROUP_INDEX
- NO_GROUP_INDEX
- ORDER_INDEX
- NO_ORDER_INDEX
- INDEX
- NO_INDEX
- これらは既存のFORCE INDEX、IGNORE INDEXと意味的に重複するものがあるが、この2つのヒントはいずれdeprecatedになり、その後廃止される予定
Packaging Notes
- システムのcurlではなく、自身でcurlライブラリを含めるように変更
- RPMパッケージで
comp_err
ユーティリティが-test
サブパッケージに以降 - バンドルされているLZ4ライブラリを1.9.2にアップグレード
- バンドルされているlibeditライブラリを3.1にアップグレード
Performance Schema Notes
- グローバルレベルでしか起きないerrorに関する統計情報をセッション単位で収集することを廃止
Pluggable Authentication
- LDAP referralとして知られるLDAP検索を以上する機能の設定ができるようになった
- MySQL EnterpriseのSASL LDAP authentication pluginでGSSAPI/Kerberosがサポートされる
SQL Syntax Notes
- SELECT文の
INTO
句は以下の2つの位置に書くことができたが、今後はSELECT文の最後にしかかけなくなる。今回はdeprecatedで今後廃止予定FROM
の後- trailing locking clause(FOR UPDATEとか)の前
Test Suite Notes
perfschema.idx_compare_replication_applier_status
テストケースがupdateされた
X Plugin Notes
- 起動時やsessionの初期化時にconnectionが貼れなかったり、メモリ不足だったりしてたときのための修正など
- bug fixに見えるので省略
Functionality Added or Changed
- TINYBLOB以上のサイズのBLOB型をsort対象にした場合、row IDだけを返すようになっていたが、これによって内部的にLONGBLOBで実装されているJSON, GEOMETRY型のパフォーマンスが落ちていたので、修正された、しかし、この影響で数MB以上のJSONなどをソートするときに
Out of memory
エラーが発生する可能性がある。この場合はsort_buffer_size
を大きくする必要がある - Contention-Aware Transaction Scheduling(CATS)アルゴリズムによるロック待ち状態のトランザクションの実行順序の制御方法が導入され、これまでのFIFOではなくなった
- dbouble write bufferのための領域がsystem tablespaceからdoublewrite用のファイルに区別された。それによりdoublewrite用のシステム変数もいくつか追加された。
EXPLAIN ANALYZE
,EXPLAIN_FORMAT=TREE
にあった制限やバグのfix- macOSでも
-DWITH_LTO=1
CMakeオプションが利用できるようになった - binary logの圧縮が可能になった。
CHANGE MASTER TO
でREQUIRE_TABLE_PRIMARY_KEY_CHECK
オプションが追加された- X Protocolの圧縮アルゴリズムやそのlevelを選択可能になった
Bugs Fixed
かなり多いので省略
Changes in MySQL 5.7.30 (2020-04-27, General Availability)
省略。5.6も省略。
Bugs
基本的にMySQL Server, 5.7以上のbug fixのみまとめます
serverity >= S5(Performance)
でupdatedでdesc sort、結果の今週分Status == Closed
でID#
でdesc sort、結果の今週分を見るNothing
Organization blogs
-
- MySQL 8.0.20 Replication Enhancements
- 8.0.20で入ったReplicationに関連する機能の紹介
- Binary Log Compression
- Controlling Primary Key Checks on Secondaries
- 8.0.20で入ったReplicationに関連する機能の紹介
- Enforce Primary Key constraints on Replication
- 8.0.20で追加されたREQUIRE_TABLE_PRIMARY_KEY_CHECKに関する説明
- MySQL 8.0.20 Replication Enhancements
-
- Percona XtraBackup 8.x and MySQL 8.0.20
- Percona XtraDB Cluster 8.0のリリース告知
- Percona XtraBackup 8.x and MySQL 8.0.20
- 8.0.20で加えられたredo logフォーマットへの変更で8.0.20をxtrabackupが利用できなくなったという告知
- この解決ができるまで8.0.20ではxtrabackupはできない
- Group Replication and Percona XtraDB Cluster: Overview of Common Operations
- Percona XtraBackup 8.x and MySQL 8.0.20
-
- Nothing
SmartStyle TECH BLOG (category MySQL)
- Nothing
Personal blogs
今回多すぎたので紹介のみです
- MySQL 8.0.20: Thanks for the Contributions
- MySQL Performance : The New InnoDB Double Write Buffer in Action
- MySQL 8.0.20 Is Released
- MySQL 8.0.20: Index-Level Optimizer Hints
- Apress Blog: MySQL Performance Tuning Best Practices
- MySQL Security – Password Reuse Policy
- Database change tracking using MySQL EE Audit
- MySQLで未定義のユーザ変数の表示がおかしい(8.0.20)
- MySQL: COUNT(*) は 1 ??
- とみたさんの記事を見てUDFにトライ
- メモ:MySQLのサーバサイドでのプリペアド・ステートメント
- MySQLのユーザー定義関数(UDF)
- RubyでMySQLのUDFを作る
- mrubyudf : C を書かずに Ruby だけで MySQL の UDF を作る
- MySQL 8.0.20 でHASH JOINが効くケースが拡大した
- パフォーマンススキーマの計器の最大登録数について
- MySQL 8.0.20 で導入された binlog transaction compression をハイパー雑に検証する
- MySQLで今月の日付一覧を得る with 再帰CTE
このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)