MySQL Weekly

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

Update for last week (2019-10-07 ~ 2019-10-13)

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

  • MySQL server blog

    • Nothing
  • MySQL High Availability blog

    • Nothing
  • Percona blog (MySQL)

    • Centralization Vs. Decentralization of DBA Teams
      • 中央集約型のチーム(Centralized)と非中央集約型(Centralized)のDBAチームの違いについての考察記事
        • 中央集約型(Centralized)
          • 1つのチームとして大体DBMS製品ごとにグループにされている
          • ドキュメント、開発、マネジメントにおいて会社で共通の手法を取りやすい
          • 運用に関して一貫性がある一方で、そのためにカスタマイズがしづらくvanilla状態で運用することになりやすい
          • 一貫性を保てると新しいメンバーの適応速度や知見の横展開においてはメリットがある
          • 大手企業でサービスやアプリケーションを複数持っている会社に見られがちで、こういうチームは往々にして新しい技術や挑戦に対して受け身になりやすい
        • 非中央集約型(Centralized)
          • 中央集約型の対策として、開発チームごとにDBAがつく非中央集約型でチームを構成することがある
          • プロダクトにあったカスタマイズが進むことで社内では一貫性がなくなり、一度起きた問題が他のチームでも起きるようになり、車輪の再開発も起きるようになる
      • どちらの方針が正解ということはないが重要なのは一貫性とコミュニケーションであり、もし非中央集約型にするのであれば、誰かが一貫性やコミュニケーションを担保する役割を担う必要があると結論づけている
      • まあ当たり前の事しか言っていない気がするけど、一貫性やコミュニケーションの度合いをどう評価するか、どういう手段でこれらを担保するかを考えてみると面白いと思う
    • Achieving Disaster Recovery with Percona XtraDB Cluster
      • 地理的に分散したインスタンスPXCを構成するとパフォーマンスが非常に悪くなってしまうが、DRのためには必須な場合async slaveをDR先に置くのが1つの解決策
      • この場合、asyncなので、大幅にdelayが発生している可能性もあるからpt-table-checksumやpt-table-syncを使うと良いよ
    • Percona Monitoring and Management (PMM) 2.0.1 Is Now Available
      • PMM(Percona Monitoring and Managementの2.0.1がリリース)
      • セキュリティやUIの改善があった
      • Impromements, Fixed bugsの項目の列挙
  • MySQL道普請

    • 第107回 CREATE TEMPORARY TABLEによる一時テーブルの利用
      • TEMPORARY TABLEに関する詳細なまとめ
      • innodb_strict_modeがONで,ROW_FORMATがCOMPRESSEDだとtemporary tableは作れない
      • temporary tableはshow tablesに表示されない SELECT * FROM INNODB_TEMP_TABLE_INFO;で確認
      • binlog_formatごとのbinlogへの出力の違い
  • SmartStyle TECH BLOG (category MySQL and Percona)

  • Severalnines Database Blog

    • Nothing
  • Yakst MySQL-tag

    • Nothing
  • MySQL関連イベントの資料ダウンロード先

Personal blogs

  • How to integrate ProxySQL in MySQL InnoDB Cluster

    • MySQL RouterだとTCPのL4レイヤのルーティングしかしてくれないので、write/readを分けてクエリを投げたい場合にはProxy SQLをかませるのが一つの方法
    • InnoDB ClusterとProxy SQLを使ってMySQLにアクセスする設定の構築例を使って紹介
  • MySQL Parallel Index Range Scans: One is Sometimes Better Than Two

    • Index Range Scan(not covering index)の効率が悪いという指摘
    • TABLE ScanとIndex Range Scanを実行するthread数をスケールさせてその際のQPSを比較
    • resource groupでCPU socketを1,2で変えてみると1 socketしか使わないほうがパフォーマンスが良かった
    • 要約する必要がないくらいまとまっているので、読んでみることをおすすめします。
  • The dark side of super_read_only

    • J,F, Gagne-san
    • super_read_onlyをONにすると勝手にread_onlyもONになり、read_onlyをOFFにするとsuper_read_onlyもOFFになるという挙動の紹介
    • なんとドキュメントにも書かれているらしい。まじか。。。
    • IMHO clearly part of the ugly (or dark) side of MySQLと言いたくなるのもわかる
  • MySQL 8.0.17現在、PRIMARY KEYやUNIQUE KEYのCOLLATEを変更しても何故か再起動まで反映されない

    • yoku0825-san
    • タイトル通りの現象についての調査記事
    • ハハパパ問題を復習しつつcollationの変更がうまく効かない地獄を垣間見れる
    • 正直、文字列型でPK, UKにしていてかつ英数字以外を入れるケースは僕の周囲では少ない、ただ発生したら結構厳しい
  • binlog_format= ROW + 式インデックス + mysqldumpでレプリケーションに失敗する可能性がある

    • yoku0825-san
    • タイトル通りの現象についての調査記事
    • この状態が起こる原因は以下(元記事引用)
        1. binlog_format= ROW である
      • ii. 式インデックスを使っている
      • iii. 式インデックスを作って以降、そのテーブルにカラムを追加した
      • iv. 論理バックアップからリストアしてスレーブを作成
    • ということでだいぶ影響範囲が大きいように思える。とりあえず式インデックス今から入れるのはやめたほうが良さそう
    • 調査の様子をibd2sdi, mysqlbinlogを使って説明してくれていて、とてもためになる
    • affects meは押しましたね? (https://bugs.mysql.com/bug.php?id=96986 )
  • MySQL: ストアドで度分秒変換

    • sakaik-san
    • 緯度経度の表現方法として"度"と"度分秒"で表す方法がある、この内"度分秒"から"度"の単位に変換してくれるstored functionの紹介
    • そもそも緯度経度の表現方法が複数あることを知らなかった。。。

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

Update for last week (2019-09-30 ~ 2019-10-06)

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

  • InnoDBのすゝめ(仮)
    • sejima-san
    • 【ゲーム業界向けセミナー】ゲーム業界におけるMySQL での瀬島さんの発表資料
    • ゲームのバックエンドとしてMySQLを運用されてきた知見が詰まった60p超の大作
    • mysql_affected_rows()を活用する方法やシャーディングの目安、大量のデータを削除する際のロックを調整するために2ndary key -> PKとindexを2つ走査せずslaveで2ndary indexからPKを引いて、masterからPK指定で削除するテクニックなど知見が盛りだくさん
    • この分量を発表時間30分ですべてを話しきれるわけもなく、再度もしくは分割してどこかの機会で聞けるのを楽しみにしています

Update for last week (2019-09-23 ~ 2019-09-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

  • Nothing

Bugs

基本的にMySQL Server5.7以上のbug fixのみまとめます

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

Bug #96984 Typo in documentation (not 5.8)

Organization blogs

Personal blogs

  • Upgrading from MySQL 5.7 to MySQL 8.0 Part I

    • Dave Stokes-san
    • mysql-shellを使ったupgrade checkerの紹介
    • サンプルで実行結果を載せている
  • Upgrading from MySQL 5.7 to MySQL 8.0 Part II

    • Dave Stokes-san
    • さすがにインストールしてコマンド打っただけでは簡単すぎたと思ったのかPart2
    • upgrade checkでよく出る指摘は予約語をschema名で使っている場合とutf8, utf8mb4の変換が指摘されることだそう
      • 予約後はバッククォートでくくっていれば安全だから無視もできる
      • utf8のカラムはutf8mb4にalterすると良いよ、と言ってるけどonlineではできないのよね、、、
  • db tech showcase Tokyo 2019 2日目に参加してきました

    • yoku0825-san
    • yoku0825さんによるdb tech showcaseの参加記事
    • 本人の発表スライド(Shooting a trouble of MySQL)と紹介
    • 2日目のMySQL関連の発表、他Oracleの発表の紹介
  • MySQL table_encryption_privilege_check パラメータの挙動

    • mita2-san
    • default_table_encryptionに続き、table_encryption_privilege_checkの説明
    • (まとめ部分抜粋) データの暗号化を強制することが以下の運用を行うことで実現できます
      • table_encryption_privilege_check をONにしておく
      • DBAがENCRYPTION=Yを指定したデータベースを作成する
      • 開発者にはそのデータベースにのみ権限を付与する
  • さいきんのMySQLに関する取り組み(仮)

    • sejima-san
    • 先日開催されたdb tech showcaseでの瀬島さんの発表資料
    • MySQLインスタンスをオンプレからクラウドに移す上で重要な知見が詰まっている
      • 特にEC2でMySQLを運用するメリット
      • p.15「OSまるごとチューニングしたり、調査できる余地があるので、何かあったときに対応の選択肢が多い」
      • p.15「マイナーバージョンアップなどの決定権を、自分たちで持てる」
      • p.16「slaveだけ先行して新しいバージョンを試しやすい」
    • GREEMySQL運用の動向やEBS障害に関する課題等も説明されている

Update for last week (2019-09-17 ~ 2019-09-23)

月曜日に先週一週間のMySQL関連の更新を再確認するのにご活用ください。

Release note

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

  • Nothing

Bugs

serverity >= S5(Performance)でupdatedでdesc sort、結果の今週分を見る 条件を適用した検索結果

  • Nothing

Organization blogs

Personal blogs

  • My MySQL Account Has TWO Passwords
    • Dave Stokes-san
    • 8.0.14で入ったdual passwordの説明
    • secondary passwordの設定例
    • ALTER USER 'dave'@'deardave.xyz' IDENTIFIED BY 'deardave2' RETAIN CURRENT PASSWORD;
    • secondary passwordの削除
    • ALTER USER 'dave'@'deardave'xyz' DISCARD OLD PASSWORD
  • Create MySQL Test Instance with Oracle Cloud Free Tier
    • Jesper Krogh-san
    • タイトル通りOracle CloudでMySQL instanceを作成するまでの説明
    • sign in画面が表示されるところからweb uiの説明をしていて丁寧
  • MySQL 8.0.17 – New Features Summary

    • Olivier Dasini-san
    • MySQL 8.0.17で入った機能のまとめ
    • お品書き(Agenda)は以下
      • CLONE Plugin – Native automatic provisioning in the server
      • Multi-valued indexes
      • JSON functions using multi-valued indexes
      • JSON schema validation
      • New binary collation for utf8mb4
      • MySQL Shell Enhancements
      • MySQL Router Enhancements
      • InnoDB Cluster Enhancements
      • Group Replication Enhancements
      • Replication Enhancements
      • Thanks to the Contributors
    • いや多くね?これ8.0ではなくて8.0.17のNew Featuresなので、、、
    • 発表資料と思われるスライドもあるので、要チェック
  • MySQL table_encryption_privilege_check パラメータの挙動

    • mita2-san
    • table_encryption_privilege_check 変数に関する説明とサンプル
    • この値を設定することで、作成するテーブルの暗号化、非暗号化を強制できる
  • MySQL Casual Talks vol.12の復習
    • tom__bo
    • 瀬島さんにアドバイスもらったRBR binlogのlog_eventに関連するWLを読んだまとめ

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

Update for last week (2019-09-09 ~ 2019-09-16)

月曜日に先週一週間のMySQL関連の更新を再確認するのにご活用ください。

Release note

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

  • Nothing

Bugs

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

条件を適用した検索結果

  • Nothing

Organization blogs

Personal blogs

  • MySQL Track at Oracle Code One

    • Dave Stokes-san
    • Oracle Code OneのMySQL関連の発表の列挙
  • MySQL InnoDB Cluster – Easy Recovering and provisioning

    • Olivier Dasini-san
    • CLONE pluginを使ったInnoDB cluster上でのrecovery, provisioningの説明
    • cluster.status()の結果付きで詳しい
    • そろそろ私も手を動かさねば...
  • MySQL Casual Talks vol.12 で発表してきた

    • mita2-san
    • mita2さんに発表いただいた"MySQLの容量とか圧縮まわり"の発表に関して
    • アンケートがバラけたのは「身構える」の受け取り方がそれぞれだったのかなと思いました。
    • 「どのくらいのサイズを超えると身構える?」という質問で、僕は300GBと回答しました。
      • このとき、1 tableの容量なら100GBだなーと思ったのと、自分で勝手につけた前提としてこのMySQLインスタンスがログデータをただ突っ込んでいるものではなく、且つここで何かしらのDDLもしくはマイグレーションをすると仮定して、身構えるとしました
      • 正直mita2さんが見ているような規模+downtimeに対する温度感でMySQLの面倒を見ている人は少ないだろうなと思いました(僕の想像です)
  • HammerDBをCLIで使うなど:まとめ、あるいは、目次の代わりに
    • atsuizo-san
    • 「HammerDBをCLIで使う」のエントリーリスト
    • 何を目指してこのシリーズ(?)を書かれたのかがまとまっています
    • きっかけに僕が発表したときのベンチマーク自動化できていますか?というを上げていただいて嬉しいです
  • MySQL Casual Talks vol.12を開催しました;
    • tom__bo
    • 開催しましたー!!
    • 参加・発表ありがとうございました。
    • 開催後の反省と後語りを書いています。

  • mita2さんのスライドの39ページ目、secondary indexとPKの関係の図、未だに奥野さんの図が出てきて、やっぱりこれ以降説明し直した人いないんだなーと思ったりしました。
  • 完全に宣伝ですが、社内用に説明資料を作ったので、これもそのうち公開できると思います。
  • ↓一部だけチラ見せ
  • f:id:tom__bo:20190916022757p:plain
  • もちろん参考文献は奥野さんのブログ、著書、そして、社内説明用の資料としての方針決定にmita2さんの社内向け資料を参考にさせていただきました。

www.slideshare.net


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

Update for last week (2019-09-02 ~ 2019-09-09)

月曜日に先週一週間のMySQL関連の更新を再確認するのにご活用ください。

Release note

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

  • Nothing

Bugs

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

条件を適用した検索結果

  • Nothing

Organization blogs

Personal blogs


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

Update for last week (2019-08-26 ~ 2019-09-01)

月曜日に先週一週間のMySQL関連の更新を再確認するのにご活用ください。

Release note

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

  • Nothing

Bugs

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

条件を適用した検索結果

Bug #96652 CPU load on MySql Server due to MySqlRouter

  • 3ノードのMySQLクラスタ, 10数個のMySQL Router Clientを接続すると、何もクエリがない状態でも1つのMySQL Routerのホストのloadaverageが2.5になった。
  • cluster memberを取得するために実行されている3つのJOINを含むクエリが重い様子

Organization blogs

Personal blogs


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