MySQL Weekly

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

Update for last week (2020-05-04~ 2020-05-10)

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

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

Release note

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

  • Nothing

Bugs

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

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

Bug #99398 Data in wrong row on left join

  • (よくわかっていません、要検証) 8.0.20で入った変更でnot nullのカラムをouter joinの駆動表にした場合にNULLフラグを正しく扱えずにtemporary tableを使わないGROUP BYでは結果が正しくなくなる(?)
  • 8.0.21のチェンジログでドキュメントの修正が入る様子?

Organization blogs

Personal blogs


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

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 EMPTYON ERRORの指定はどの順番でもできたが、これはSQL標準に反し、ON ERRORの前にON EMPTYを書かないといけないということからこれは非推奨になり、warningが出るようになった
  • max_length_for_sort_dataはdeprecated
  • INSERT ... 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 TOREQUIRE_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のみまとめます

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

  3. Nothing

Organization blogs

Personal blogs

今回多すぎたので紹介のみです


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

Update for last week (2020-04-20~ 2020-04-26)

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

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

Release note

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

  • Nothing

Bugs

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

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

Bug #99241 WITH_ZSTD=system fails with zstd 0.8.1 or older

  • -DWITH_ZSTD=system"か、 "-DWITH_SYSTEM_LIBS=ON"をつけてコンパイルしたときにZSTD 0.8.1やそれ以下のバージョンだとfailする

Organization blogs

Personal blogs

海外のMySQLerたちのblogでPlanet MySQLの批判(とタイトルに入れているものもある)記事がありましたが、純粋にMySQLの技術に話ではないことと、読むのが面倒なため、それらはskipしました。


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

Update for last week (2020-04-13~ 2020-04-19)

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

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

Release note

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

  • Nothing

Bugs

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

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

Bug #99243 Don't need to get LRU_list_mutex in buf_page_io_complete if io_type is read

  • buf_page_io_complete関数内で、io_typeBUF_IO_READのときはLRU_list_mutexを取る必要はなく、これによって高負荷時にパフォーマンスが落ちているという報告
  • このあたりの仕組が全くわからないので、要調査だが、今後のバージョンでこの現象を回避するような変更が入っているとのこと。

Organization blogs

Personal blogs


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

Update for last week (2020-04-06~ 2020-04-12)

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

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

Release note

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

  • Nothing

Bugs

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

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

  3. Nothing

Organization blogs

Personal blogs


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

Update for last week (2020-03-30~ 2020-04-05)

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

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

Release note

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

  • Nothing

Bugs

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

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

Bug #94283 MySQL 8.0.15 is slower than MySQL 5.7.25

Bug #99118ARM CRC32 intrinsic call to accelerate table-checksum (not crc32c but crc32)

  • arm intrinsicなcrc32 最適化があるらしく、それで性能向上できるため、そのpatchつきreport
  • crc32とcrc32cについては以下のように説明されている
    • crc32 is traditional crc32 found in most of the zip utilities.
    • crc32c (crc32 Castagnoli) uses different polynomial and a new generation the platform can compute full 32 bit crc32c in 3 cycles.
  • MySQLではそれぞれ以下で使われているらしい
    • MySQL uses both of them. crc32 is used for calculating table and binlog checksum and crc32c for by InnoDB for page-checksum.

Bug #99119 different xor results with float in MySQL 5.7 and MySQL 8.0

  • xorでfloat型との演算結果がおかしい
  • select 0.001 xor 0;など
  • 8.0以降でfixed, 比較的大規模なリファクタリングの成果なので5.7以下では修正されない様子
  • 回避策として次のような方法が5.7以下でも有効select '0.001'<>0 xor 0<>0;

Bug #99120 Incorrect result for query that uses an AND operator on floats

  • floatとのAND演算がおかしい
  • 8.0以降でfixed
  • 上記と同じで5.7以前の回避策として次のようにかけるSELECT * FROM t0 WHERE 1<>0 AND 0.4<>0;

Bug #99122 A predicate that compares 0 with -0 yields an incorrect result

  • 0-0 の比較結果がおかしい
  • 8.0.21で直る (比較するデータのどちらかがfloat pointの型の状況で-0と比較すると結果がおかしい様子)

Bug #99131 Segfault on shutdown if started with --create-admin-listener-thread=1 option

  • --create-admin-listener-thread=1を設定して--admin-addressを設定しないでmysql-clientからSHUTDOWNするとsegmentation faultになる
  • 8.0.20でfixed

Bug #99166 MySQL manual does include LATERAL tables in syntax description for join

Organization blogs

Personal blogs


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

Update for last week (2020-03-23~ 2020-03-29)

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

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

Release note

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

  • Nothing

Bugs

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

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

Bug #99021 BUF_REMOVE_ALL_NO_WRITE is not needed for undo tablespace

  • Adaptive Hash Index(AHI)では undo tablespaceを使ってないからundo tablespaceをdelete/truncateするときにBUF_REMOVE_ALL_NO_WRITEではなくてBUF_REMOVE_FLUSH_NO_WRITEで十分というパッチ付きレポート
  • 報告者はそれぞれがLRU list, FLUSH listをスキャンするが、普通はサイズがLRU listより小さいFLUSHリストをスキャンするだけで十分と言っている
  • Sunny Bainsによる回答でもっと良い方法(どんなリストもスキャンしない)が次のリリースで入るよとのことでクローズ

Bug #98947 mysql_fetch_row_nonblocking() incorrectly sets errno to CR_COMMANDS on last call

  • mysql_fetch_row_nonblocking()が複数回呼ばれることを想定していて、最後の呼び出し時にnullがセットされるが、他の呼び出しのエラーでもnullになることがある
  • 8.0.21でfixed

Organization blogs

Personal blogs


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