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のみまとめます
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_type
がBUF_IO_READ
のときはLRU_list_mutexを取る必要はなく、これによって高負荷時にパフォーマンスが落ちているという報告- このあたりの仕組が全くわからないので、要調査だが、今後のバージョンでこの現象を回避するような変更が入っているとのこと。
Organization blogs
-
- Nothing
-
- Nothing
-
- Top MySQL Bug Reporters Ever
- CVE-2020-10997 – Percona XtraBackup information disclosure of command line arguments
- command lineの情報がキャプチャされてbackup fileに出力される(?)問題
- 2.4.11からあり、2.4.20か8.0.11以降で修正済み
-
- Nothing
SmartStyle TECH BLOG (category MySQL)
- pt-secure-collectの使い方
- タイトル通りPercona toolkitの1つである
pt-secure-collect
の説明 - トラブル発生時に必要な一般的な情報を取得し、暗号化やサニタイズをしてくれる
- タイトル通りPercona toolkitの1つである
- pt-secure-collectの使い方
Personal blogs
- More MySQL Document Store Intro Videos
- Dave Stokes-san
- Document Storeに関する紹介Videoの公開告知
- GitHubにmp4がupされているからダウンロードしてみる斬新な公開方法
- MySQL Security – Random Password Generation
- dasini-san
- 8.0で入ったrandom passwordでaccount作成する方法たちの紹介
- Logging all MySQL queries into the Slow Log
- MySQLとの戯れ:カラムの別名とグルーピングの動作について
- sakaik-san
- カラムの別名を付けたりgroup byと併用したときの動作検証
- MySQL の feature request を眺める
- mita2-san
- Feature requestsの探し方と良さそう(?)なFeature requestたち
- 良く使う pt-query-digest のコマンド メモ
- mita2-san
- pt-query-digestコマンドのチートシート的な記事
このブログ記事は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のみまとめます
serverity >= S5(Performance)
でupdatedでdesc sort、結果の今週分Status == Closed
でID#
でdesc sort、結果の今週分を見るNothing
Organization blogs
-
- Using a MySQL Keyring SECRET and Asymmetric Encryption
- MySQL Enterprise Edition 8.0.19でサポートされるようになったSECRET key typeの紹介(datatypeとなっているけどおそらく誤字)
- pluginのインストールから始まり、実際にencrypt, decryptをするサンプル付きで機能説明
- Using a MySQL Keyring SECRET and Asymmetric Encryption
-
- Nothing
-
- 18 Things You Can Do to Remove MySQL Bottlenecks Caused by High Traffic (Part Two)
- 18 Things You Can Do to Remove MySQL Bottlenecks Caused by High Traffic (Part Three)
- How to Install ProxySQL From the Percona Repository
- タイトル通りProxySQLのインストール方法
- Evaluating Group Replication Scaling Capabilities in MySQL
- Daylight Saving Time and System Time Zone in MySQL
- 夏時間などの時間補正の話のよう(よくわからない)
- Evaluating Group Replication with Multiple Writers in MySQL
- Announcing Percona Live ONLINE – A 24-Hour Virtual Event
- "10:00 am Eastern time on May 19, 2020"からPercona Liveをオンラインで24時間イベントとして開催
- registrationは無料とのこと
- Percona XtraBackup: Backup and Restore of a Single Table or Database
- XtraBackupで1つのテーブルだけbackup, restoreする方法
- Evaluating Group Replication Scaling for I/O Bound Workloads
-
- 第119回 group_concat()を利用してgroup byを更に便利に使う
- group_concatの便利な使い方とハマりどころ、その回避方法の紹介
- 第119回 group_concat()を利用してgroup byを更に便利に使う
SmartStyle TECH BLOG (category MySQL)
- MySQL Shell 8.0.19 の新機能について
- MySQL Shell 8.0.19に追加された新機能を以下の3つに分類し、過去の記事で取り上げていない後者2つについて紹介
InnoDB ReplicaSet に関する管理 API を追加。
メタデータスキーマ(mysql_innodb_cluster_metadata) が Ver.2.0 にアップグレード。
MySQL Router に関する管理 API を追加。
- MySQL Shell 8.0.19に追加された新機能を以下の3つに分類し、過去の記事で取り上げていない後者2つについて紹介
- MySQL Shell 8.0.19 の新機能について
Personal blogs
- HA for our website’s database in OCI with MySQL InnoDB Cluster
- lefred-san
- OCI環境でInnoDB Clusterを構築する手順の紹介
- MySQL Lock information in MySQL Shell
- lefred-san
- lefred-sanが開発しているmysqlshell-pluginsに追加されたPerformance_schemaを利用したロックの確認機能の紹介
- my.cnfの plugin_load の記法
- yoku0825-san
- my.cnfにプラグインのロードを記述する際の機能について
- 自分でpuluginを自作して試す人向けかな。。。
- MySQLのLAG()とかLEAD()に ERROR 1690 (22003): BIGINT UNSIGNED value is out of range と言われたら
- yoku0825-san
- 符号あり/なしの型での演算で負の結果になる場合のTips
ERROR 1690 (22003): BIGINT UNSIGNED value is out of range
とNO_UNSIGNED_SUBTRACTION
- 必読
このブログ記事は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のみまとめます
Bug #94283 MySQL 8.0.15 is slower than MySQL 5.7.25
- パフォーマンス劣化、どこがボトルネックかの言及はない
- 5.7.25, 8.0.15の比較(sysbench oltp_read_write)
- singleスレッドではなく
--threads=24
らしい - Bug #99140 8.0 single thread applying performance regression of update_non_index とduplicatedとされている
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
- Øystein Grøvlen-sanのreport
- https://dev.mysql.com/doc/refman/8.0/en/join.html のtable_factorが間違っている(修正済み)
Organization blogs
-
- Nothing
-
- Nothing
-
18 Things You Can Do to Remove MySQL Bottlenecks Caused by High Traffic (Part One)
Introducing Metabase, a Simple and Powerful Analytics Tool
- Metabaseという可視化、分析ツールの紹介
- MySQL以外のDBもサポートしている
Tips for MySQL 5.7 Database Tuning and Performance
- 5.7向けのconfig設定によるチューニング方法の紹介
Becoming Familiar With the Little Known SQL Keyword LATERAL
- LATERAL Derived tableのサンプルとtips
-
- Nothing
SmartStyle TECH BLOG (category MySQL)
- Nothing
Personal blogs
When to use NULLable columns in relational databases
- Federico Razzoli-san
- NULLableなカアr無をつかうことによる影響について整理
このブログ記事は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のみまとめます
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
-
- Nothing
-
- Nothing
-
- Sysbench and the Random Distribution Effect
- sysbenchの
-rand-type
に関する解説とその違いに関する解説 - そもそもランダムなアクセスパターンの分布が5種類選択できることを知らなかった
- sysbenchはPerconaのCEO, Peter Zaitsev-sanが最初に作ったものだったのか!!
- sysbenchの
- MySQL Performance Optimization with Percona Monitoring and Management – Webinar Followup
- PMM v2のwebinarででた質疑応答のfollow up
- これだけを見てもいろいろとわかる
- The Changing Face of Enterprise DBAs in Cloud-Driven Environments
- MySQLに限らないがcloud環境が当たり前になった昨今、DBAのroleはどう変わっているのかという記事
- Sysbench and the Random Distribution Effect
-
- 第118回 MySQL Routerを使って負荷分散を検証する
- MySQL Routerのinstallから設定、動作確認(sample)までを説明
- 第118回 MySQL Routerを使って負荷分散を検証する
SmartStyle TECH BLOG (category MySQL)
- MySQL8.0のPartial Revokesを試してみる
- 8.0.16で導入されたPartial Revokeに関する説明
- 基本の説明から様々な状況での挙動について説明が詳しい
- MySQL8.0のPartial Revokesを試してみる
Personal blogs
- INNODB_DEADLOCK_DETECT - RATHER HANDS OFF!
- Shinguz-san
innode_deadlock_detect
,innodb_lock_wait_timeout
に関する挙動の整理
- MySQL 各インデックスごとの容量を確認する
- mita2-san
innodb_index_stats
テーブルをみる! 実際に確認するサンプルあり
- ようこそ…『男の世界』へ…(AUTO_INCREMENTが巻き戻るお話)
- next4us-ti-san
- AUTO_INCREMENT生成後のレコードを削除して再起動するとAUTO_INCREMENTが一度生成した値よりも小さくなる現象について説明
- MySQL 8.0.19 と docker-compose 環境下で Single-Primary InnoDB Cluster を構築する
- RabbitFoot141-san
- docker-composeでInnoDB Cluster環境を構築するサンプル
このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)
Update for last week (2020-03-16~ 2020-03-22)
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のみまとめます
serverity >= S5(Performance)
でupdatedでdesc sort、結果の今週分Status == Closed
でID#
でdesc sort、結果の今週分を見るNothing
Organization blogs
-
- Controlling table encryption in MySQL 8.0
- 8.0での暗号化の説明
- tablespace単位で暗号化される, 8.0.13からgeneral tablespaceも暗号化できる
- 他, ユースケースや設定・確認方法の説明
- 最後に暗号化に関連するドキュメントのリンク集があるので便利
- 8.0での暗号化の説明
- Controlling table encryption in MySQL 8.0
-
- MySQL User Camp, Bangalore, India – 5th March 2020
- インドでのUser Campの報告
- MySQL User Camp, Bangalore, India – 5th March 2020
-
- Nothing
SmartStyle TECH BLOG (category MySQL)
- Nothing
Personal blogs
- Using OCI to install Wordpress and MySQL 8.0
- MySQL 5.6 End of Life is February 2021
- Dave Stokes-san
- 2021年2月で5.6はEoLだよって話。なんと5.6は2013にリリースされたらしい
- "RIP, Thank you MySQL 5.6"って唱えれば勝手に5.7か8.0になって欲しい
- New Book: MySQL 8 Query Performance Tuning
- MySQL 8.0のデュアルパスワードを使った記念メモ
- yoku0825-san
- デュアルパスワードを使ったアカウントの情報がどういったコマンドで確認できるか、どのテーブルやカラムに入っているかを検証した内容
- MySQL Clone Plugin を利用してスレーブが簡単に作れた
- mita2-san
- my.cnfに
plugin_load_add
でmysql_cloneを有効化するところから初めてclone, replicationをつなぐまでのサンプル
- MySQLのゾンビプロセスの話
- atsuizo-san
- MySQLサーバに重いクエリを実行したときにclientのプロセスを
kill -9
で殺してもserver側では処理が止まらないという現象の説明と対策
このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)
Update for last week (2020-03-09~ 2020-03-15)
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のみまとめます
serverity >= S5(Performance)
でupdatedでdesc sort、結果の今週分Status == Closed
でID#
でdesc sort、結果の今週分を見るNothing
Organization blogs
-
- Nothing
-
- Nothing
-
- Percona Monitoring and Management Container, Are You Ready Yet?
- dockerでコンテナの起動を確認してから何か(PMMへの監視対象追加など)の操作をする方法の紹介
- dockerの
HEALTHCHECK
をつかうかcurlの-fオプションを利用する方法until curl -f http://127.0.0.1/ping; do sleep 1; done
が紹介されている
- DBA Concerns About Next-Gen, Non-Volatile Memory Storage Products
- HWの進化に伴って新しいstorage engineが開発されていく状況について整理。
- 今後新しいStorage engineが出てきたときにいつ頃productionで利用するものとして手を出すのが良いか考察している
- それらの違いはstorage engineのレイヤでpluginなどとして吸収できるだろうという予想も面白い
- Percona Monitoring and Management Container, Are You Ready Yet?
-
- 第117回 MySQL 8.0のオプティマイザーヒント
- 主に8.0で入ったoptimizer hintについて紹介
- 第117回 MySQL 8.0のオプティマイザーヒント
SmartStyle TECH BLOG (category MySQL)
- Nothing
Personal blogs
- MySQL 8.0.19: Thanks for the Contributions
- lefred-san
- 8.0.19に入ったcommunityからのcontributionについて紹介
- シングルプライマリーとDDLとDMLと
- グループレプリケーションのメンバーとInnoDB Clusterのメタデータと cluster.rescan()
- グループレプリケーションの group_replication_applier と group_replication_recovery のリレーログ
- ROW_FORMATとCHECKSUM TABLEの結果の違い
- mita2-san
- CHECKSUM TABLEの結果が変わる条件に関する検証
- version,
ROW_FORMAT
, 型の違いが挙げられている
このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)
Update for last week (2020-03-02~ 2020-03-08)
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のみまとめます
serverity >= S5(Performance)
でupdatedでdesc sort、結果の今週分Status == Closed
でID#
でdesc sort、結果の今週分を見るNothing
Organization blogs
-
- Nothing
-
- Nothing
-
- Webinar 3/18: Optimize and Troubleshoot MySQL Using Percona Monitoring and Management
- PMMを使ったMySQLの最適化やトラブルシューティングに関するWebinar
- EDT 1:30pmはJSTだと2:30amだから無理かな
- ClickHouse Versus MySQL Handling of Double Quotes
- MySQLではdouble-quotesもsingle-quotesも文字列をくくるためにどちらでも使えるけど、ClickHouseでは文字列をくくるためにはsinble-quoteしか使えないよという話
- Configuring a Read-Only Web Interface for Orchestrator
- orchestratorでWeb-uiやAPIをread-onlyに設定する方法の整理とNginxを挟む方法の紹介
- Webinar 3/18: Optimize and Troubleshoot MySQL Using Percona Monitoring and Management
-
- Nothing
SmartStyle TECH BLOG (category MySQL)
Personal blogs
- Deploy MySQL InnoDB Cluster in OCI with Terraform
- How To Monitor MySQL With dim_STAT
- mortensi-san
- Dimitori-sanが作ったdim_STATのサーバでMYSQLの監視を行う方法の説明
- MySQL 8.0.19が来た! その2: mysqlコマンドラインツールのbinary-as-hexがデフォルトでオンに。
- InnoDB ClusterのマルチプライマリーモードはGTIDの払い出し方が雑…
- yoku0825-san
各サーバー内ではちゃんと直列化して、サーバーまたいだ部分は100万番ずつズラしてユニークになるようにしているらしい。
- 壊したマルチプライマリーモード、その後に
- yoku0825-san
MultiPrimaryModeのGroup Replication環境を崩壊させるテストで壊したあとの残骸を眺めて色々考えるメモ
とのことで、リレーログやgroup replicationの状態を自分で頑張って直す過程の説明
- MySQLの生成列を使って緯度・経度の列をGEOMETRYに
- sakaik-san
- タイトル通りdoubleなどで緯度経度のカラムを定義している場合にgenerated columnを定義する場合のサンプル紹介
- きょうMySQLユーザ会20周年イベントをやっているはずだった
- MySQL ST_PointFromGeoHash で得られる点はどこの点
- sakaik-san
- ST_PointFromGeoHashに関する考察
- TRIGGERの権限とDEFINER
- mita2-san
- TRIGGERを作成したときに指定したDEFINER(defaultは作成したuser)の権限に関する説明とサンプル
- NOT IN (Subquery)などにおけるNULL
- tom__bo
- IN(x), NOT IN(x), IN(x) IS NOT TRUEなどについて整理しました
このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)