日々の覚書: MySQL
5.7のmysql_upgradeは本当にDATETIME型を新しいフォーマットに直してくれるけれど でちょっと触れてるんだけど、DATETIME型(TIME型とTIMESTAMP型もあるけど)には現在2つのフォーマットが合って、
- 5.5とそれ以前のDATETIME型(秒部の小数点数非対応、8バイト、以下 旧DATETIME型)
- 5.6とそれ以降のDATETIME型(秒部の小数点数対応、小数部無しの場合は5バイト、以下DATETIME2型)
で、MySQL
5.7のmysql_upgradeは旧DATETIME型をDATETIME2型にアップグレードしてくれるよ、こいつらはレプリケーションで混ぜるとよろしくないから、これで安心だね、みたいなのが
…
MySQL5.7.13以降における、Enterprise Audit機能の改善
MySQL5.7.13以降で、全てのユーザー若しくは、特定ユーザーが特定のテーブルに対して行った、read,insert,update,delete処理のみを監査出来るようになりました。
フィルター作成はJSONフォーマットで定義するようです。この機能は、以前から待ち望んでいたので、嬉しい機能の一つです。
【検証バージョン】5.7.13-enterprise-commercial-advanced-log
フィルタリング詳細:
https://dev.mysql.com/doc/refman/5.7/en/audit-log-filtering.html
例)
こちらは、confidentialテーブルに対してselectしたSQLだけ監査するようにフィルターしてある場合の監査ログです。
【フィルター】
…[さらに読む]
日々の覚書: innotopが最近息してないなーと思ったんだ から
1か月。innotop v1.11 がリリースされました。
v1.10からのアップデート内容はざっくりと
- MariaDB 10.1のサポート #124
- MySQL 5.7のマルチソースレプリケーションに対応 #129
- 壊れたテストの修正 #135- perl 5.22でエラーになる問題の修正 #136- MySQL 5.7で "L", …
この記事では、最適なMySQLのメモリー使用量を設定するためのベストプラクティスを扱おうと思います。
使用できるメモリーのリソースをどのように使うか正しく設定するのは、MySQLを最適なパフォーマンスでかつ安定して使うために最も重要なことのひとつです。MySQL 5.7では、デフォルトの設定では非常に少ない量のメモリしか使いません。デフォルトのままにしておくのは、最も良くないことのひとつでしょう。しかし、不適切に設定してしまうと、パフォーマンスを更に悪くする(あるいはクラッシュする)ことにもなりかねません。
…
[さらに読む]MySQL 5.7.12 から追加された X Protocol は Protobuf というのを使ってるらしいです。 Protobuf というのをそこで初めて知ったので、とりあえず Ruby から Protobuf を利用する方法を調べてみました。
Protobuf はデータ構造をバイト列にエンコードしたり、その逆にバイト列をデータ構造にデコードしたりするライブラリのようです。
Ubuntu で protobuf を使うには、protobuf-compiler パッケージをインストールします。
% sudo apt-get install protobuf-compiler
Ruby から Protobuf を使うには、protobuf gem をインストールします。
% gem install protobuf
データ構造は .proto という拡張子のファイルで定義するようです。
MySQL 5.7.12 では rapid/plugin/x/protocol …
[さらに読む]MySQLで疑似的なマテリアライズド・ビューを作成
MySQLにはOracleで利用可能な、マテリアライズド・ビューは実装されてません。
その為、トリガーで対応したり、ワークテーブルを作成しておいて、定期的にデータを入れ替えるような処理で対応する必要があります。
過去の経験では、デイリー、ウイークリーランキングを作成する為に、以下のようにMySQLのEVENT
SCHEDULE機能とREPLACE 構文を利用して変更されたデータを
定期的に入れ替える処理を行ないマテリアライズド・ビューの代わりに利用していました。
イベントは、イベントを作成してスケジュールします。但し、イベントスケジューラが有効になっていないかぎり実行されません。
メモ:EVENTの代わりに、LinuxのcronやWindows …
[さらに読む]SYSスキーマのstatement_analysisとperformance_schemaのevents_statements_historyを利用して、MySQLで簡単にSQLのパフォーマンス確認。
statement_analysis / x$statement_analysis
Description:
Lists a normalized statement view with aggregated
statistics,
mimics the MySQL Enterprise Monitor Query Analysis view, ordered
by the total execution time per normalized statement
https://github.com/mysql/mysql-sys
events_statements_history
events_statements_history テーブルには、スレッドごとの最新の N
ステートメントイベントが格納されます。
N …
オープンソースカンファレンス2016名古屋(OSC2016-Nagoya)に参加してきました。
私にしては珍しく、当日会場入り。
https://www.ospn.jp/osc2016-nagoya/
会場に到着し、日本MySQLユーザ会のブースを設置(といっても説明用チラシやシールを出すだけ)、他のブースの知り合いたちに到着のご挨拶まわりをしてから、午前中はまったりとセミナー資料の最終仕上げをしながら、ブースに来た方のお相手(ほとんど知り合い)。
…
MySQL Fabricには /etc/mysql/fabric.cfg の
[logging]セクションの他にもログを取る部分が仕込まれていて、
mysql> SELECT * FROM fabric.log;[さらに読む]
+---------------------------+----------------------------+------------------------------+-----------------------------------------------------------------------+----------+------+
| subject | reported | reporter | message | category | type |
+---------------------------+----------------------------+------------------------------+-----------------------------------------------------------------------+----------+------+
| 0 | 2016-05-16 06:48:47.000000 | mysql.fabric.services.manage | Fabric node version (1.5.6) started. | 0 | 0 |
| manage.ping | 2016-05-16 …
免責事項
この記事はMike Frank氏によるMySQL Server Blogの投稿「MySQL 5.7.12 – Part 1: More than a Maintenance Release」(2016/4/11)をユーザが翻訳したものであり、Oracle公式の文書ではありません。
MySQL 5.7.12はMySQL 5.7系の4番目の安定版(GA)リリースです。この時点のリリースでは、通常のバグ改修やちょっとした機能の拡張が期待されます。ただし今回は、少し状況が違うのです。
現在のリリースプロセスの概要
MySQL Serverチームでは、新しいメジャーバージョンを開発しながら、最初はいくつかの実験室版(lab)とDMR(Developer Milestone Release)をリリースします。例えば次のとおりです。
- …