Update for last week (2019-07-15 ~ 2019-07-21)
月曜日に先週一週間のMySQL関連の更新を再確認するのにご活用ください。
Release note
(https://dev.mysql.com/doc/relnotes/mysql/8.0/en/)
- Nothing
Bugs
serverity >= S5(Performance)
でupdatedでdesc sort、結果の今週分を見る
- nothing
Organization blogs
MySQL server blog: https://mysqlserverteam.com/
- Nothing
Percona blog (MySQL): https://www.percona.com/blog/
- MySQL: The Impact of Transactions on Query Throughput
- selectだけをするクエリをトランザクションとして実行する(begin, commit等で挟む)とどの程度Throughputが落ちるのかという検証。
- Percona Server for MySQLを含む5.6~8.0の比較もある。
- 明示的にトランザクションとして実行した場合、begin, commitでもserver,client間でクエリのやり取りが発生するからThroughputが落ちるよねという結論。
- 同時に3threadだけの単純なselectで実験したため、versionが上がるごとにThroughputが低下しているが、より新しいバージョンでは並列度を上げた時にパフォーマンスを出せるようにしているからとしている。
- Assessing MySQL Performance Amongst AWS Options – Part One
- Cloudの環境選択も含めMySQLインスタンスをどうやって利用するかを選択することはchallengingな課題になってきているよね?ということで、パフォーマンス比較の記事。
- 以下のMySQLを比較
- ストレージはio1, gp2でも比較
- 比較にはsysbench-tpccを500 warehouses/10 tables, 128 threadsで30分間回している
- この結果だけを見ると
RDS InnoDB
<ec2 Percona InnoDB
<amazon aurora
<ec2 Percona RocksDB
ということになるけど、configについては全く触れていないので、どんな設定で実験して、どこがボトルネックになったのかは不明(それを書くのは大変なのはわかる) - 2部作で次回はcostについても触れるそう
- MySQL: Disk Space Exhaustion for Implicit Temporary Tables
- Tmp tableが使われるようなクエリで、そのtmp tableがon memoryで解決できずにtmpファイルに落ちる場合にdisk sizeが問題になるケースの説明と対策
- まずtmp tableを作る主なクエリに以下のものがある
GROUP BY
,ORDER BY
,DISTINCT
をつかうUNION
statementの評価がある- マージできない
VIEW
を使う(サブクエリを使うderived tableのため) - 複数テーブルに
UPDATE
をかける
- 5.6まではtmp_tableのストレージエンジンはMyISAMだったが、5.7以降はInnoDB
- 解決策(詳細は元記事へ)
- disk sizeを充分に増やす
- ibtmp1のサイズに上限のリミットをつける(要再起動)
internal_tmp_disk_storage_engine = MYISAM
を設定する- onlineで変更可能
SET GLOBAL internal_tmp_disk_storage_engine = MYISAM;
- onlineで変更可能
- クエリをoptimizeする(slow_logにどれくらいのtmp table sizeが使われたかでるらしい)
- Assessing MySQL Performance Amongst AWS Options – Part Two
- 前回の続き。今回はコスト面にフォーカスした内容
- IOPSやストレージサイズで課金する場合の状況が整理されていそう
- MySQL: The Impact of Transactions on Query Throughput
- MySQL道普請: https://gihyo.jp/dev/serial/01/mysql-road-construction-news
- 第101回 InnoDBバッファプールの状態を確認するさまざまな方法
- タイトル通り、InnoDBバッファプールの状況を確認するための解説。
SHOW GLOBAL STATUS
,SHOW ENGINE INNODB STATUS
によって出力される項目が解説されている。- 詳しく知らない人は必読
- そしてこのあたりに興味があればドキュメントまで読むと良さそう (記事中でもreferされてる-> https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool.html)
- 第101回 InnoDBバッファプールの状態を確認するさまざまな方法
gihyo.jp MySQL-tag
- Nothing
Yakst MySQL-tag: https://yakst.com/ja/tags/mysql
- Nothing
Personal blogs
- MySQL Technology Cafe #4 に参加してきた
- mita2-san
- MySQL Technology Cafe #4の参加レポート
- MySQL Technology Cafe #4参加してきた
- next4us-ti-san
- MySQL Technology Cafe #4の参加レポート
- MySQL 8.0 はダウングレードできない
- mita2-san
- 8.0からダウングレードできなくなって、CHECK制約などのダウングレード先にない機能を"使っていなくても"起動できない
このブログ記事はGitHub上で管理されていますMySQL-weekly repository。Issue, pull-request歓迎です。(完全に同期できているわけではありません)