10月3日(きのう)、
MySQL 最前線 ~ 2016年秋 最新アップデート【続編】
を聞いてきた!ので、その内容をメモメモ
■MySQL最前線~Server編~
・MySQL5.7 全面的な改良
全部で200以上の改善
JSONデータ型、JSON組み込み関数
・開発の方向性
MySQLの改善
スキーマレスデータベース
モバイル
・MySQL8.0 DMR(開発途上版)
2016年9月12日リリース
フィードバック募集中
バグ報告、機能追加要望 MySQL Bugs http://bugs.mysql.com
・GIS
地理情報システムへの対応
5.7で刷新→GIS系のライブラリをいれた
SRID対応(5.7では、動作変わらなかった)
・UTF-8
UTF-8は最近のアプリケーションでもっとも使用されているキャラクターセット
各国語対応、絵文字の使用
Unicode 9.0をサポート
照合順序を国ごとに(対応中)
デフォルト 方向性としてはUTF-8
・UUIDの改善
より効率的に
関数の追加
・JSON対応(→はじめはLabsだった)
MySQL Document Store
・Labs(実験版):Common Table Expressions(With句)
再帰的 With RECURSIVE cte AS (select
→階層構造がある場合
Oracleはconnect by、それに近いことが提供できる
・LABS(実験版):降順索引
・不可視索引
索引自体は残っているが、(索引のメンテナンスもする)
オプティマイザからは見えない
→仮削除と索引採用のテスト
クエリー単位で不可視索引を有効化 bug#83066→affects me
デモ
使ってない索引を探す;select * from sys.schema_unused_indexes;
・ロール:権限をまとめて付与/剥奪
ロールをロールに付与できる
proxy userよりも柔軟に
SET ROLE
・アトミックな権限変更
権限管理テーブルのInnoDB化完了
DDをアトミックに実行可能
・パフォーマンス・スキーマ・インデックス
メモリにハッシュ形式のインデックス
パフォーマンスの比較 30倍以上!
・エラーを確認できるテーブル追加
・設定変更の永続化
今までもSETコマンドで動的に設定できた
それを永続的に SET PERSIST
→新しい設定ファイルが別途できて、そこに書き込まれる
それを確認できるビューも追加された
余談:Shutdownコマンドが追加された
JSON形式で設定を持つ
・トランザクショナルなデータディレクトリ
信頼性の向上
InnoDBを使ってデータディレクトリを実現
FRM,TRG,などに入っていたものも・・
・インフォメーションスキーマのパフォーマンス改善
30倍はやい
・InnoDBのAuto Incrementの永続化
・他にも多くの点を改良
■MySQL最前線~Enterprise Edition編~
・コミュニティ版
商用版
スタンダード
エンタープライズエディション
・エンタープライズエディション
サポート:コンサルティングサポート
レプリケーション、
→スタンダードもエンタープライズも
拡張機能→オラクルになってから増えている(セキュリティ)
・スタンダードに入っていない
パーティショニング
エンタープライズ
MySQLルーターなど
・セキュリティ
47%の会社が過去に情報漏えいを経験
セキュリティ上の脅威
セキュリティの規制
PCI-DSSなど
セキュリティ要件
MySQL Enterprise FireWall
ホワイトリスト方式
パラメーター化して、自動的に学習できる
ログに残すことも
ユーザーごとにもてる
MySQL側でプロシジャー呼ぶだけでできる
監査ログを取る機能 audit
ポリシーベースの監査機能を提供
できごごろの発生抑止
全てのデータ保護
透過的データ暗号化
暗号化自体は5.7でできる
カギの管理→Oracle keyボルト、KMIP1.2なら連携できる
統合されたセキュリティ機能
Enterprise
ファイヤーウォール、
TDE,
暗号化、
オーそりティフィケーション、
監査
モニター
バックアップ
・パフォーマンス問題を抱えていませんか?
問題となっているSQLをすばやく特定
→エンタープライズ モニター
エージェント入れられるならエージェント
パフォーマンススキーマからとることもできる
クエリーアナライザー
→スロークエリーログと比べた場合の利点
レプリケーションモニター
トポトジービュー
・バックアップ
オンラインで高速にバックアップ
73Gをもとす
MySQLdump 18時間
エンタープライズバックアップ 14分
→物理的バックアップ
コピーしながら、ログファイルもバックアップしている
バックアップ操作
バックアップ取得とログ適用を1回の操作で実行
ログ適用前のバックアップにログを適用し、リストア
更新部分だけ、クラウドに、圧縮なども出来る
バックアップジョブの実行状況を監視できる
・その他のエンタープライズの機能
スレッドプール
ある一定以上:コンテキストスイッチ、スワップなどで、遅くなる
スレッドプール;ピーク性能を維持
・サポート
日本語は9時から5時まで
夜間・休日は英語
コンサルティングサポートも
CPU数、コア数に依存しない価格体系
30日間トライアル
■MySQL最新技術情報 The State of the Dolphin "HotUpdate"
・MySQL8.0
・MySQL Cluster7.5
復習 My6SQL Clusterとは
MySQLがなくても使える、インメモリ
使い方が合えば
リアルタイム、拡張性高い、スモールスタート、SQL/NoSQL
パフォーマンス:NoSQLでトランザクション(KeyValue型)
SQL:MySQLを移せる
最低4ノードくらいで作っている
データノード:2台構成デフォルト
全く同じデータが存在する形
管理ノードとSQLノードは一緒に出来る
7.4
プライマリーキールックアップ:固定識別あれば高速
ユニークキールックアップ
・今回7.5
ndbinfoの拡張で、細かい設定をより詳しく確認可能
MyISAM→InnoDB
ndb_binlog_indexをACID対応エンジンへ
MySQL5.7 JSONデータ型が使える
Reading from backup
1つがプライマリ、もうひとつがセカンダリ
→セカンダリでも読み込める
Fully replicated
全てのデータノードにコピー
→読み込みは早い、書き込みは遅くなり、メモリは使う
・MySQL Group Replication(RC)
MySQLレプリケーション
5.7.15
Active Active構成でどのノードからでも更新可能
分散型フォールとトレランス
自動的にサーバのフェイルオーバーを行う
自動再構成
自動的に競合検出&解消
一般的なインターフェースを介してプラグインをコール
部分的にsemi-syncインターフェース
MySQLでPaxoを開発
構成例
エラスティック・レプリケーション
ハイ・アベイラブル・シャード
自動フェールオーバー可能なシングルプライマリーモード
マスターが死ぬと、自動昇格して、あらたなサーバーにみにいく
マルチスレッドスレーブ
設計要件
InnoDB
全てのテーブルでプライマリ^キー必要
STIDが必要
トランザクション競合したとき・・
・MySQLの可用性、拡張、
ハイアベイラビリティ
スケールアウト
インストール:15分くらい
優れた品質:確認してみてください
統合ソリューション
スケールアウト
MySQL InnoDBクラスター アーキテクチャー
MySQLルーターで接続
アプリケーションからコネクタ→ルーターへ
MySQL Shell (DMR)
コマンドラインのインターフェース
デモ
バッチを組めば、インストールは簡単に
MySQLRouter:グループレプリケーションのハンドリングはまだ
コレ自体は出ている
・Oracle MySQLクラウドサービス
コストメリットある
特徴
シンプル
自動化
統合
オラクル製品と連携しやすい
エンタープライズ対応
エンタープライズモニターがデフォルトで
バックアップの自動化がついている
互換性:プリチェック→フルバックアップ
バイナリ互換(プライベートとクラウドと)