MySQL Weekly

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

Update for last week (2019-11-25 ~ 2019-12-01)

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 #97777 separate global variables (from hot variables) using linker script (ELF)

  • global変数のbtr_search_enabledを読み込む部分が競合してパフォーマンスを悪化させているという報告
  • パッチもあるが変更が多いので、コンフリクトしそうとのこと
  • システムプログラミング力が弱くて内容が把握できないが、verifiedになったので、修正され方を確認したい

Bug #97822 buf_page_get_gen buf_pool->stat.n_page_gets++ is a cpu waste

  • 上のバグレポートと同じ報告者によるレポート
  • TPCCのベンチマーク中にperfで記録したところbuf_page_get_genまわりでCPU処理が重いという報告

Organization blogs

  • MySQL server blog

    • Nothing
  • MySQL High Availability blog

    • Nothing
  • Percona blog (MySQL)

    • Comparing S3 Streaming Tools with Percona XtraBackup
      • XtraBackup 2.4.14からxtrabackupでbackupしたバックアップをstreamingでS3 compatibleなストレージにuploadできるようになっている、そこでPerconaが作ったxbcloud toolと書くPublic cloud純正のS3 uploadツールのパフォーマンス比較をした結果を説明
      • 結論部分ではチューニングしたxbcloudが長距離のバックアップでは2~5倍高速で、同じ設定でも14%早く20%メモリ消費が少ないとしている
      • また、以下の2つの理由で他のツールより安全とのこと
        • upload中にmd5 sumsを計算してして検証している
        • 10MBごとのチャンクに切って転送失敗時には再送をしている
    • Running PMM1 and PMM2 Clients on the Same Host
      • PMM2へのmigration手段として一時的にPMM1と同時に利用する場合の方法を紹介
  • MySQL道普請

    • Nothing
  • SmartStyle TECH BLOG (category MySQL and Percona)

  • GREE Engineer's Blog (MySQL関連)

    • チョットワカル Row-Based Replication・その5
      • TABLE_MAP_EVENTを通して型変換のチェックやfilterがどのように動作するかの説明をMySQL 8.0.12のソースコードを参照しながら説明されている。
      • (感想) 解説というよりは説明をもとにコードを読むことが前提なので、なかなかハードモード(というかほとんど読み飛ばして結論だけ読みましたm(_ _)m)
  • Yakst MySQL-tag

    • Nothing
  • MySQL Shell Plugins: check (part 3)

    • lefred-san
    • MySQL Shell Pluginのcheckメソッドに追加した機能紹介
      • getQueryMostRowAffected([limit][, schema][, session])
      • getQueryUpdatingSamePK[limit][, schema], session
      • getTrxWithMostRowsAffected([limit][, schema][, session])
      • getTrxWithMostStatements([limit][, schema][, session])
    • lefred-sanのmysqlshell-pluginsも公開されているので、自分でMySQL Shell Pluginを拡張する場合にもとても参考になりそう
  • MySQL Shell Plugins: InnoDB
    • lefred-san
    • MySQL Shell Pluginのinnodbメソッドに追加した機能紹介
      • getAlterProgress([session])
      • getFragmentedTables([percent][, session])
      • getFragmentedTablesDisk([percent][, session])
    • (感想)すごい、今後のバージョン対応をどうするか気になるけど、たしかにsnippetで管理している便利SQLたちを外出しして共有するのに一番良い方法だと思う
  • MySQL 8.0.18 New Features Summary
    • Olivier Dasini-san
    • 8.0.18に追加された機能紹介
    • 発表スライドが添付されている。
    • Agendaは以下
      • Hash Join
      • EXPLAIN ANALYZE
      • Only OpenSSL
      • Random Password
      • MySQL Shell Enhancements
      • MySQL Router Enhancements
      • InnoDB Cluster Enhancements
      • Group Replication Enhancements
      • Replication Enhancements
      • Enterprise New Features
      • Thanks to the Contributors
  • MIGRATION FROM MYSQL 5.7 TO MARIADB 10.4
    • Shinguz-san
    • MySQL 5.7からMariaDB 10.4への解説というほど説明はなく、mysql_upgrade --forceを2回(再度?)叩くといくつかのerrorが消えるという現象の紹介
  • innodb_autoinc_lock_mode = 1 vs 2 でバルクインサートが競合した時のAUTO_INCREMENTの挙動が違うはなし
    • yoku0825-san
    • innodb_autoinc_lock_mode = 1/2でauto_incrementなカラムがあるテーブルに同時にbulk load(insert)するクエリがある場合にauto_incrementの値がどう変わるかを検証
    • bulk load(insert)後にlast_inserted_idを持ってきてなにかの処理を続ける場合はこの挙動を知らないとバグになるよという話
    • (感想) 検証中にでてくるCTEを見ていて連番発行楽になったことを思い出した。LEAD()とか忘れていたので、ちゃんとコマンドのログからやっていることを終えるか確認してみると良さそう。
  • 本番データ de CLONEプラグイン、そして思ったこと
    • yoku0825-san
    • 本番環境でMasterからCLONEプラグインでslaveようにデータをcloneしたときのつまりどころ紹介
      • CLONE中はホストとのコネクションが切れないようにする
      • 5.7からupgradeしたときは再起動が必要かも(undoログのファイルがないエラーが出た原因がこれかもしれない)
  • 手探りでマイエスキューエルシェる!
    • yoku0825-san
    • MySQL Shellでタブ保管を使ってメソッドを探っていく話
    • help()メソッドがあればMySQL Shellのメソッド、なければJS実装のものと判断できるかもしれない
  • MySQL admin_address にワイルドカードは指定不可
    • mita2-san
    • MySQL Weekly で tom__bo さんから頂いた、感想へのフィードバック(と補足)です。
    • 先週の記事でのmita2-sanの記事に対するコメント(感想)部分に対する回答記事(わざわざありがとうございます)
    • タイトルどおりadmin_addressではワイルドカード指定はできないという指摘
    • (感想) 先週から(感想)とつけて記事の内容と僕の感想を分けたことで少々適当な(裏取りしてない)コメントを付けてしましました、すいませんm(_ _)m
  • InnoDB FULLTEXT Search の ngram_token_size
    • mita2-san
    • ngram_token_sizeを変更したらインデックスを再構築しないと検索結果が正しくならないことの検証付き説明
      • スキーマやテーブルごとにngram_token_sizeは変更できない

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

Update for last week (2019-11-18 ~ 2019-11-24)

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、結果の今週分を見る

Nothing

Organization blogs

Personal blogs


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

Update for last week (2019-11-11 ~ 2019-11-17)

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 #97589 JSON fields return altered data

  • 結論としては意図された実装なので、ドキュメント修正
  • json型に挿入したリストの値をselectして表示されるときに要素の間にinsert時にはなかったspaceがあるという報告

Organization blogs

Personal blogs


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

Update for last week (2019-11-03 ~ 2019-11-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 #97471 Function passing std::vector<> by value could be sightly improved

  • vector<>にconst referenceやpointerではなく値で渡しているせいでパフォーマンス低下になっていそうという指摘
  • 仕組みがわかっていないし、説明もされていないので常識の様子
  • 8.0.19で修正されるとのことなので、どう修正されたか見てみたい

Organization blogs

Personal blogs


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

Update for last week (2019-10-28 ~ 2019-11-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

(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

  • Setup 2 MySQL InnoDB Clusters on 2 DCs and link them for DR
    • lefred-san
    • データセンターをまたいでgroup replication構成のstandby clusterを作成する方法の紹介
    • 2つのinnodb clusterを作成して、cluster間は予め設定したホスト同士でreplicationしている
    • option1, 2のうち2を説明しているが、1の場合も気になる
  • Using MySQL Community Repository with OL 8/RHEL 8/CentOS 8
    • lefred-san
    • repository追加して最新のMySQL入れる方法の紹介
  • MySQL Random Password Generation

    • Dave Stokes-san
    • CREATE USER/ALTER USER時にIDENTIFIED BY RANDOM PASSWORDでランダムなパスワードを生成できるようになった
    • shellscriptからエスケープが必要だったりするので、英数字だけとかできないかなーと思っているがない。
  • 最近

    • ichirin2501-san
    • Mercari meetup for SRE Vol.2とdb tech showcase 2019でのichirinさんの発表に関する話
  • MySQL の 巨大な core ファイル 対策(~MySQL 5.7)

    • mita2-san
    • MySQL <= 5.7でcore fileを吐く方法の説明
    • 17GBで22秒って早すぎない?って思ったんですが、普通ですか?
    • 8.0の話はinnodb_buffer_pool_in_core_file = OFF;ですかねw

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

Update for last week (2019-10-21 ~ 2019-10-27)

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 #???

  • Nothing

Organization blogs

Personal blogs


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

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歓迎です。(完全に同期できているわけではありません)