SlideShare a Scribd company logo
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
MySQL Global Business Unit
Shinya Sugiyama / 杉山真也
MySQL Principal Sales Consult
MySQL 5.7 技術アップデート
OSC Fukuoka
Updated: 2015/10/03
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。
以下の事項は、マテリアルやコード、機能を提供することをコミットメントするものではない為、
購買決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
弊社の裁量により決定されます。
SAFE HARBOR STATEMENT
2Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
A Year of Anniversaries!
20 Years:
10 Years:
5 Years:
MySQL Initial Release
Oracle stewardship of InnoDB
Oracle stewardship of MySQL
Thank You, MySQL Community, for 20 years of Contributions to MySQL!
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 4
MySQL Mile Stone
4.0
全文検索/GIS (MyISAM)
複数テーブルUPDATE/DELETE
組み込みライブラリ型サーバ
OracleMySQL Sun
3.23
MyISAM
InnoDB
レプリケーション
5.1
プラグガブル・
ストレージエンジン・
アーキテクチャ
パーティショニング
タスクスケジューラ
5.6
memcached API
UNDO表領域
Global Transaction ID
マルチスレッドスレーブ
オンラインALTER TABLE
トランスポータブル表領域
5.5
InnoDBがデフォルトに
準同期型レプリケーション
PERFORMANCE_SCHEMA
1.0-3.22以前
ストレージエンジン (ISAM, HEAP)
マルチスレッド
Windows対応/64bit対応
日本語文字コード (SJIS/UJIS)
5.0
ストアドプロシージャ
ストアドファンクション
カーソル/トリガ/ビュー
XAトランザクション
INFORMATION_SCHEMA
4.1
Unicode対応
サブクエリ
CSV, ARCHIVE
ndbcluster
1995 2000 2005 2010 2015
5.7+
新コストモデル オプティマイザ
ロスレス レプリケーション
マルチソース レプリケーション
グループ レプリケーション
全文検索CJK対応/GIS (InnoDB)
セキュリティ強化
データディクショナリ
NoSQLオプション
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 Release Candidate Available!
5
InnoDBの機能拡張:
Online&Bulk load オペレーション高速化
レプリケーションの改良
(multi-source, multi-threaded slaves等)
新しいオプティマイザコストモデル:
greater user control & better query performance
Performance Schemaの拡張
MySQL SYS Schemaの拡張
パフォーマンス & 拡張性 管理性
MySQL 5.6比2倍の速度
セキュリティの向上:
より安全な初期化, セットアップ&管理
JSONのSupport
ドキュメント管理
RC
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 Release Candidate Available!
6
InnoDBの機能拡張:
Online&Bulk load オペレーション高速化
レプリケーションの改良
(multi-source, multi-threaded slaves等)
新しいオプティマイザコストモデル:
greater user control & better query performance
Performance Schemaの拡張
MySQL SYS Schemaの拡張
パフォーマンス & 拡張性 管理性
MySQL 5.6比2倍の速度
セキュリティの向上:
より安全な初期化, セットアップ&管理
JSONのSupport
ドキュメント管理
RC
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 RCにおける主な改良点
• InnoDB: トランザクション処理性能, 可用性, IO性能の向上
• Optimizer: より詳細なEXPLAIN, パーサ, SQL処理性能
• Lock: 単一コネクションで複数のユーザレベルロック, リファクタリング
• 機能拡張: Trigger, 32k and 64k pages, クエリ・リライト・プラグイン,生成列
• 全文検索: InnoDB 全文検索, 中国語, 日本語, 韓国語対応
• レプリケーション: マルチソースレプリケーション, グループレプリケーション
7
Available Now! dev.mysql.com/downloads/mysql/
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
0
100,000
200,000
300,000
400,000
500,000
600,000
700,000
8 16 32 64 128 256 512 1,024
QueriesperSecond
Connections
MySQL 5.7: Sysbench Read Only (Point Select)
MySQL 5.7
MySQL 5.6
MySQL 5.5
MySQL 5.7: Sysbench Benchmark
Intel(R) Xeon(R) CPU E7-4860 x86_64
4 sockets x 10 cores-HT (80 CPU threads)
2.3 GHz, 512 GB RAM
Oracle Linux 6.5
645,000 QPS
8
MySQL 5.6より2倍高速
MySQL 5.5より3倍高速
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7: InnoDB, NoSQL With Memcached
MySQL 5.6より6倍以上高速
0
200,000
400,000
600,000
800,000
1,000,000
1,200,000
8 16 32 64 128 256 512 1,024
QueriesperSecond
Connections
MySQL 5.7 vs 5.6 - InnoDB & Memcached
MySQL 5.7
MySQL 5.6
9
Intel(R) Xeon(R) CPU E7-4860 x86_64
4 sockets x 10 cores-HT (80 CPU threads)
2.3 GHz, 512 GB RAM
Oracle Linux 6.5
1,000,000 QPSThank you, Facebook
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7: 秒間接続数
MySQL 5.6より1.7倍高速
0
10,000
20,000
30,000
40,000
50,000
60,000
70,000
80,000
MySQL 5.5 MySQL 5.6 MySQL 5.7
Connections/Second
Connections Per Second
MySQL 5.5
MySQL 5.6
MySQL 5.7
10
Intel(R) Xeon(R) CPU E7-4860 x86_64
4 sockets x 10 cores-HT (80 CPU threads)
2.3 GHz, 512 GB RAM
Oracle Linux 6.5
参照:Improving connect/disconnect performance
67,000 接続/秒
MySQL 5.5より2.5倍高速
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
オプティマイザ – 新コストモデル
• パーサとオプティマイザのリファクタリング
• 新しいコストモデルによりストレージエンジンでの処理を改善
– より正確で動的なコスト見積もり
– キーの参照、テーブルスキャン、レンジスキャン、インデックススキャンなど
– コストベースの意思決定で、経験則のみに基づく判断を回避
• インデックスからレコードへの参照の見積もり改善
• コスト値はEXPLAINのJSON出力に含まれる
• 様々な追加要素にてコスト調整が可能
– ディスクI/O処理性能
– メモリ処理性能
11
SQL文の実行性能を向上
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
オプティマイザ – その他
• INを用いた問いクエリ処理の最適化
• フルテキストクエリ処理の最適化
• より効率の良いソート処理
• SQL標準に準拠した”ONLY_FULL_GROUP_BY” SQLモード
12Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
オプティマイザ – JSON EXPLAINへのコスト情報追加
• JSON EXPLAINを拡張
– 出力可能なコスト情報を全て表示
– MySQL WorkbenchのVisual Explainにも表示
13
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "200.40"
},
"table": {
"table_name": "nicer_but_slower_film_list",
"access_type": "ALL",
"rows_examined_per_scan": 992,
"rows_produced_per_join": 992,
"filtered": 100,
"cost_info": {
"read_cost": "2.00",
"eval_cost": "198.40",
"prefix_cost": "200.40",
"data_read_per_join": "852K"
},
"used_columns": [
"FID",
"title",
"description",
"category",
"price",
"length",
"rating",
"actors"
],
...
より具体的な値をベースに最適化を実施可能に
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
InnoDB - General Tablespace Support
14
General TablespaceはSystem Tablespaceに類似した共有型のTablespaceです。その為、複数のテーブルを保持する
事が可能で、全てのテーブルフォーマットにも対応しています。相対,若しくは独立したディレクトリーに作成する事が可能。
[USER01]> CREATE TABLESPACE U_TABLESPACE01 ADD DATAFILE '/home/mysql/user_tablespace01.ibd' Engine=InnoDB;
Query OK, 0 rows affected (0.01 sec)
[USER01]> CREATE TABLESPACE U_TABLESPACE02_8K ADD DATAFILE '/home/mysql/user_tablespace02_8k.ibd' FILE_BLOCK_SIZE = 8192 Engine=InnoDB;
Query OK, 0 rows affected (0.01 sec)
[USER01]> CREATE TABLE `T_USER01` (
> `id` int(11) NOT NULL AUTO_INCREMENT, `text` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`)
> ) TABLESPACE = U_TABLESPACE01 ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.01 sec)
[USER01]> CREATE TABLE `T_USER02_8K` (
> `id` int(11) NOT NULL AUTO_INCREMENT, `text` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`)
>) TABLESPACE = U_TABLESPACE02_8K ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4
> ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE =8;
Query OK, 0 rows affected (0.00 sec)
参照:13.1.15 CREATE TABLESPACE Syntax
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
InnoDB - Native partitioning Support
15
InnoDBのネイティブパーティショニング
- これまでのパーティショニング固有の制限事項を排除可能に
- 多数のパーティションが存在する場合のメモリ消費を抑制
Handler
(ha_innopart)
Encapsulate all partitioning in one single handler
‘Main' handler (pointed out by TABLE::file) which in turn have one
handler per partition where all read/writes are forwarded.
参照: InnoDB Native Partitioning – Early Access
CREATE TABLE `t_partition_h` (
`UID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`COMMENT` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`UID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
/*!50100 PARTITION BY HASH (UID) PARTITIONS 8192 */
CREATE TABLE `t_partition_r` (
`UID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`COMMENT` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`UID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
/*!50100 PARTITION BY RANGE (UID)
(PARTITION p0 VALUES LESS THAN (100) ENGINE = InnoDB,
PARTITION p1 VALUES LESS THAN (200) ENGINE = InnoDB,
PARTITION p2 VALUES LESS THAN (300) ENGINE = InnoDB,
PARTITION p3 VALUES LESS THAN (400) ENGINE = InnoDB,
PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
main handler
(ha_partition)
Partition 1
handler
ha_innobase
Partition 2
handler
ha_innobase
Partition N
handler
ha_innobase
………
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
InnoDB - Temporary Tables
16
Contains metadata about active InnoDB temporary tables
This variable was added in MySQL 5.7.5.
The default value was changed to INNODB
in MySQL 5.7.6.
この変更により、optimizerはディスク上の内部
一時テーブルとしてInnoDBストレージエンジン
を使用するようになりました。
参照: 8.4.4 How MySQL Uses Internal Temporary Tables
internal_tmp_disk_storage_engine
一時テーブルを利用した処理の高速化
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
InnoDB - Temporary Tables
• 一時テーブル専用の表領域を新規追加
– CREATE/DROPのパフォーマンスを改善
– DDLによる変更が短縮され,一部ディスクI/Oも削減
• DMLオペレーションの最適化
– No REDO logging, no change buffering, less locking
• 内部的な新たなテンポラリーテーブル
– ACID/MVCCに対応した専用の一時テーブル
– 軽量且つ超高速で、中間のクエリの実行操作に最適
17
参照:14.11 InnoDB Startup Options and System Variables
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Avoid Creating Temporary Table for UNION ALL
SELECT * FROM T_UNION01 UNION ALL SELECT * FROM T_UNION02;
• 5.6: 常にすべてのUNIONの結果を一時テーブルで実現する。
• 5.7: ソート処理に使用されない限り、結果は一時テーブルを利用せずクライアントに直接送信されます
• 5.7: 最後の問合せブロックが終了するまで待つ必要が無い為、クライアントは最初の行を直ぐに受け取る事が可能
• 5.7: 少ないメモリとディスク消費量
参照:MySQL 5.7: only_full_group_by Improved
UNION ALLクエリ実行時、一時テーブルを不使用
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
INDEXにおける改善
• BULK LOADSによる高速なINDEX作成
• ボトムアップソートを行いINDEXを構築
– Improves speed by increasing locality and decreasing node splitting
• PAGEがフルになった場合のみ圧縮が行われる
• 各PAGEの空き容量を”innodb_fill_factor”オプションでコントロール
• パフォーマンス向上
– 2-3x ADD/CREATE INDEXのパフォーマンスの改善
– 2-5% 標準INSERTオペレーションのパフォーマンス改善
19
innodb_fill_factor defines the percentage of space on each B-tree page that is filled during a sorted index build,
with the remaining space reserved for future index growth.
As of MySQL 5.7.5, InnoDB performs a bulk load when creating or rebuilding indexes. Prior to the introduction
of bulk load index creation, index entries were inserted into the B-tree one record at a time using insert APIs.
参照:14.12.17 Bulk Load for CREATE INDEX
Update用
Page
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
InnoDB Compression
Thank you, SanDisk Fusion-io
• ページレベルでの透過的圧縮
– バックグラウンドスレッドにより自動的に圧縮
– IOレイヤにて管理
– スパースファイルを使用
サポート済みOSカーネルおよびファイルシステム(NVMFS)が必要
• IO削減
– MySQLの性能向上
– ストレージ利用効率向上
– 書き込みサイクル削減、SSDのライフサイクルを維持
• 全てのInnoDBのデータ、システム表領域、UNDOログが対象
20
参照:fusionio.com
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7におけるロック
単一コネクションで複数のユーザレベルロック
• ユーザレベルロックによって相互に排他制御を利用
– 複数のリソースにアクセスする場合
– テーブルレベルまたは行レベルのロックが不適切な場合
• 一連のGET_LOCK()関数にて複数のロックを要求
• 独自のユーザレベルロック実装を置き換え
– MDL(メタデータロック)ロックマネージャを利用
– ユーザレベルロック、メタデータロック、テーブルのフラッシュの
待ちなどによるデッドロックを検知し通知
21
Thank you, Konstantin Osipov!
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Improved metadata locking(MDL)
• Fast-path for DML locks (“fast-path”)
• Lock-free DML lock acquisition
• Lock-free hash
– Now uses MurmurHash library
• 単一テーブルへのDMLアクセスに関してのボトルネックを排除
– 10% スループット向上:OLTP_RO/POINT_SELECT sysbench
– 負荷の高い典型的なDML処理を最適化
22
参照: Removing Scalability Bottlenecks in the Metadata Locking and THR_LOCK Subsystems in MySQL 5.7
MySQL-5.7 improves DML oriented workloads
WL#7305: Improve MDL scalability by using lock-free hash
WL#7304: Improve MDL performance and scalability by implementing "fast-path" for DML locks
参照: https://sites.google.com/site/murmurhash/
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Improved SQL Semantics
• Triggers
– テーブル毎に複数のトリガを作成可能
• Error reporting
– 診断エリアをクリア
23
As of MySQL 5.7.2, it is possible to define multiple triggers for a given table that have the same trigger
event and action time. For example, you can have two BEFORE UPDATE triggers for a table.
参照:Support for multiple triggers per table for the same value of action/timing.
Error Code Description
1000 ~ Codes are currently numbered consecutively (~1974使用済)
2000 ~ Second range of error codes used by the client
3000 ~ The new 5.7 server error codes will now instead start at 3000 ~
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Additional Support for 32K and 64K pages size
24
MySQLインスタンス内の全てのInnoDBのテーブルスペースのページ·サイズを指定します。
この値はインスタンス構築時に設定し、その後設定した値が継続して適用されます。
The size in bytes of the buffer that InnoDB uses to write to the log files on disk.
The default value changed from 8MB to 16MB in 5.7.6 with the introduction of 32k and 64k
innodb_page_size values.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
クエリ・リライト・プラグイン
• クエリの書き換え (パースの前と後)
• パースした後での書き換えプラグイン
–アプリケーションを変更することなく問題のあるクエリを書き換え
–ヒントの追加
–JOIN順の変更
• ORマッパーやサードパーティ製のアプリなどが発行する
問題となり得るクエリなどに対応
25Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 26
クエリ・リライト・プラグイン – Sample Rule
Rewrite Rule
Rewrite Result
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7: サーバサイドでのSQL文タイムアウト
Thank you Davi Arnaut!
• サーバサイドにてSQL文をタイムアウト
– サーバ全体、セッション単位、SELECT文単位で設定可能
• WindowsおよびSolarisにも対応
SELECT MAX_EXECUTION_TIME = 109 * FROM my_table;
27
Database
User A
User B
Batch 処理
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Generated Column Support
28
CREATE TABLE `T_Generated_Column` (
`pid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`pname` varchar(1024) DEFAULT NULL,
`price` decimal(10,2) DEFAULT NULL,
`qty` int(10) DEFAULT NULL,
`total` decimal(10,2) GENERATED ALWAYS AS (price * qty) STORED,
`WithTax` decimal(10,2) GENERATED ALWAYS AS (total * 1.08) VIRTUAL,
PRIMARY KEY (`pid`),
KEY `IDX_TOTAL` (`total`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4
式から生成される列(2種類)
- VIRTUAL(default) : 読み込み時に計算され, データ保存されない。
- STORED: inserted/updated時に計算され,データは保存される。(Primary Key設定可)
Useful for:
- インデックス追加による、クエリーパフォーマンス向上 (STOREDはPKを含む、複合条件でフィルター可能)
- 複雑な条件に対してのマテリアライズドキャッシュ利用可
- クエリ式を簡素化にする事が可能
<type> [ GENERATED ALWAYS ] AS ( <expression> ) [ VIRTUAL|STORED ] [ UNIQUE [KEY] ] [ [PRIMARY] KEY ] [ NOT NULL ] [ COMMENT <text> ]
参照: Generated Columns in MySQL 5.7.5
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Generated Column Support
29
Generated Columnに対してIndex作成が可能なので、
Where句はindexを利用し最適なコストでデータを抽出可能
参照: Virtual Columns and Effective Functional Indexes in InnoDB
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
InnoDB -全文検索(Full Text Search) - ngram
30
InnoDB Full Text Search (FTS) にて 中国語, 韓国語,日本語をサポート
N-gram support for Chinese and Korean, additional MeCab support for Japanese
CREATE TABLE `N_DEMO` ( `FTS_N_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL,
PRIMARY KEY (`FTS_N_ID`), FULLTEXT KEY `ngram_idx` (`title`) /*!50100 WITH PARSER `ngram` */
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
※ こちらの例では、ngram_token_sizeを2で設定しています。
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
InnoDB -全文検索 (Full Text Search) - mecab
31
InnoDB Full Text Search (FTS) にて 中国語, 韓国語,日本語をサポート
N-gram support for Chinese and Korean, additional MeCab support for Japanese
CREATE TABLE `M_DEMO` ( `FTS_M_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL,
PRIMARY KEY (`FTS_M_ID`), FULLTEXT KEY `mecab_idx` (`title`) /*!50100 WITH PARSER `mecab` */
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• GTIDの改良
– GTIDモードレプリケーションへのオンライン移行
– Slave側のバイナリーログはオプション設定に
• 準同期レプリケーションの改良
– ロスレスレプリケーション (データ損失無し)
– 複数のスレーブからAcksを待機するオプション
• マルチソースレプリケーション
– 複数マスターから,単一スレーブへの同期処理
• グループレプリケーション (マルチマスター)
• マルチスレッドスレーブのパフォーマンスの強化
• 動的レプリケーションフィルター
MySQL 5.7におけるレプリケーションの機能拡張
32
mysql> STOP SLAVE SQL_THREAD;
Query OK, 0 rows affected (0.05 sec)
mysql> CHANGE REPLICATION FILTER
REPLICATE_DO_DB=(db1);
Query OK, 0 rows affected (0.00 sec)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• 複数のマスターでの変更点を1台の
スレーブに集約
– 全てのシャードのデータを集約
– より柔軟なレプリケーション構成
– バックアップ処理を集約
• 準同期レプリケーション&改良版
マルチスレッドスレーブ対応
• スレーブ側でのフィルタリングが可能
MySQL 5.7: マルチソースレプリケーション
Binlog
Master 1
Binlog
Master 2
…
…
Binlog
Master N
IO 1
Relay 1
Coordinator
W1 W2 … WX
IO 2
Relay 2
Coordinator
W1 W2 … WX
…
…
Coordinator
W1 W2 … WX
IO N
Relay N
Coordinator
W1 W2 … WX
Slave
33Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• シェアード・ナッシング型”疑似”同期レプリケーション
• 更新はマルチ・マスタ型でどこでも可能
– 矛盾の検知と解決(トランザクションのロールバック
– “Optimistic State Machine” レプリケーション
• グループメンバーの管理と障害検知を自動化
– サーバのフェールオーバー不要
– 構成の拡張/縮小の柔軟性
– 単一障害点無し
– 自動再構成
• 既存構成との統合
– InnoDB
– GTIDベースのレプリケーション
– PERFORMANCE_SCHEMA
MySQL 5.7: グループレプリケーション
Application
MySQL Masters Replication
Plugin
API
MySQL
Server
Group Comms
(Corosync)
34Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• シングルスレッドのスレーブと比較し
て 5倍 のスループット
– アプリケーション側での変更不要
– バイナリログのグループコミットでの遅延
を伴う操作不要
• GTID & クラッシュセーフスレーブ利用
• Sysbench OLTP test
– 1,000万行
– SSD / 48 core HT / 512 GB RAM
MySQL 5.7: スキーマ内マルチスレッドスレーブ
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
0 4 16 25 50 100 200
Worker Threads
Slave Transactions per Second
Baseline
50 clients
100 clients
150 clients
200 clients
35
--slave-parallel-type
1. DATABASE : (Default) Use the db partitioned MTS (1 worker per database)
2. LOGICAL_CLOCK: Use logical clock based parallelization mode.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 36
スキーマ内マルチスレッドスレーブ – Sample View
参照:MySQL 5.7 Enhanced MTS
Created 5 tables in a single test database on master and used 5 clients to
do inserts on them, in parallel.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 37
MySQL Slave Replication Filters Dynamic
REPLICATE_DO_DB
REPLICATE_IGNORE_DB
REPLICATE_DO_TABLE
REPLICATE_IGNORE_TABLE
REPLICATE_WILD_DO_TABLE
REPLICATE_WILD_IGNORE_TABLE
REPLICATE_REWRITE_DB
MySQL-5.7.3の新しく導入された “CHANGE REPLICATION FILTER” コマンドを利用する事で、
ユーザーは*slave* 側のレプリケーションフィルターを動的に、サーバーの再起動せずに適用する
事が可能です。
MySQL-5.7.3以前は、ユーザーはOptionファイル(my.cnf)か、コマンドラインパラメータを使用して
フィルタリングルールを設定することが出来ますが、いずれの場合もMySQLサーバはフィルタリング
ルールの変更を反映する為に再起動する必要があります。
The following slave replication filters can be
changed dynamically using this command.
mysql> STOP SLAVE SQL_THREAD;
Query OK, 0 rows affected (0.05 sec)
mysql> CHANGE REPLICATION FILTER
REPLICATE_DO_DB=(db1);
Query OK, 0 rows affected (0.00 sec)
例) フィルター設定手順
参照:MySQL-5.7.3- Making MySQL Slave Replication Filters Dynamic
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 Release Candidate Available!
38
InnoDBの機能拡張:
Online&Bulk load オペレーション高速化
レプリケーションの改良
(multi-source, multi-threaded slaves等)
新しいオプティマイザコストモデル:
greater user control & better query performance
Performance Schemaの拡張
MySQL SYS Schemaの拡張
パフォーマンス & 拡張性 管理性
MySQL 5.6比2倍の速度
セキュリティの向上:
より安全な初期化, セットアップ&管理
JSONのSupport
ドキュメント管理
RC
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 RCにおける運用サポート機能
• Performance Schema: 性能統計情報のさらなる追加
• オンライン処理においての機能拡張
• SYSLOGをLinux/Windows共にネイティブサーポート
• GIS機能をInnoDBの空間インデックスとBoost.Geometryの統合でサポート
• JSONデータ型と関数をサポートしドキュメント管理をサポート
• Security強化として,簡単で安全な初期設定と管理をサポート
39
• Replication for better scalability and availability
• Fabric for high availability and sharding
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
メモリ統計情報
• 統計情報の収集
– メモリの利用タイプ別
(キャッシュ、内部バッファ…)
memory_summary_*テーブル
– スレッド/アカウント/ユーザ/
ホスト毎のメモリ処理
• 含まれる属性情報
– メモリ利用量 (バイト)
– 処理数
– 最大/最小
SQL文統計情報
• ストアドプロシージャ
• ストアドファンクション
• プリペアードステートメント
• トランザクション
追加情報
• レプリケーションスレーブ情報
• MDLロック統計情報
• スレッドごとのユーザ変数
• Server stage tracking
• 長時間実行されているSQL文
• メモリフットプリントとオーバー
ヘッドの削減
MySQL 5.7: Performance Schema
40Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL SYS Schema
DB管理者、開発者や運用担当者を支援
• DB管理者や運用担当者の作業効率を改善
- サーバの稼働状況、ユーザやホストの状況、主要な稼働指標
- 性能問題の発見、分析および改善
• 状況をより簡単に把握し理解するための複数のビュー
- IO量の高いファイルや処理、ロック、コストの高いSQL文
- テーブル、インデックス、スキーマの統計
• 他のデータベースにおけるSYS類似機能:
- Oracle V$表 (動的パフォーマンスビュー)
- Microsoft SQL Server DMV (Dynamic Management Views)
41
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 42
MySQL SYS Schema – sample view (1)
InnoDB Buffer Memory Usage
Global Memory usage broken down by
allocation type
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 43
MySQL SYS Schema – sample view (2)
statement_analysis (SQLステートメント関連)user_summary_by_file_io_type (ユーザー関連)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
SYS Schema補足情報
■The MySQL SYS Schema (Video Streaming)
トピック: 管理及びモニタリング, パフォーマンスとスケーラビリティ
プレゼンター: Mark Leith, Senior Software Development Manager, Oracle
http://www-jp.mysql.com/news-and-events/web-seminars/the-mysql-sys-schema/
44
■ The MySQL SYS Schemaドキュメント
https://oracleus.activeevents.com/2014/connect/fileDownload/session/72527FD4
2DFF7B2148314B9E72BE7B6A/CON3751_Leith-mysql_sys_schema_oow_2014.pdf
GUI: http://www-jp.mysql.com/products/workbench/
SCRIPT:https://github.com/MarkLeith/mysql-sys
■ The MySQL SYS Schema設定
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
オンライン処理の拡張
45
• Resize the InnoDB Buffer Pool online
– オンラインでのバッファーサイズのチューニング
– データベースの使用パターンの変化にリアルタイムで適応
• Separate UNDO tablespace
– 自動オンラインUNDOログ切り捨て(MySQL 5.7.5~)
– UNDOログファイルサイズの増加を回避する事が可能
• Dynamic configuration
– Making existing settings dynamically configurable
– As a design principle for new features & settings
– その他、幾つかのレプリケーションの設定変更等も
オンラインで変更可能になりました。
参照:14.4.8 Truncating Undo Logs That Reside in Undo Tablespaces
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 46
Additional Online ALTER TABLE support
- VARCHARサイズ拡張 (例) varchar(100) → varchar(255)
ALTER TABLE T_ONLINE_DDL ALGORITHM=INPLACE, CHANGE COLUMN text text VARCHAR(255);
オンライン処理の拡張 (DDL)
- Rename Index
ALTER TABLE T_ONLINE_DDL RENAME INDEX idx_text TO index_text;
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 : Linux/Unix環境でのSyslogサポート
• syslogのネイティブサポート
• シンプルなオプションでsyslogにログを出力
• サーバの起動オプションとして設定
• サーバ稼働中に動的に変更可能
– システム変数 log_syslog (ON/OFF, デフォルトはOFF).
47
Thank you, Simon Mudd at booking.com
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Improved Tools
• Improved innochecksum
– Specify checksum algorithm (innodb,crc32,none)
– Rewrite current checksum (--write )
– supports files greater than 2GB in size
• SSL support to mysqlbinlog tool
リモートインスタンスとの通信を暗号化
• Rewrite of mysql_upgrade into C from perl
– Allows direct calls to things like mysqlcheck
• Rewrite of mysql_secure_installation and mysql_install_db scripts to C++
– Improve security and fix issues
48Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• 独自コードの置き換え
– 空間図形情報の計算
– 空間図形情報の分析
• OGC(Open Geospatial Consortium)準拠
– パフォーマンスの向上
• Boost.Geometryによる効果
– エキスパートとの交流
– 非常に活発なコミュニティ
• Boost.Geometryへのコントリビュートも
MySQL 5.7: GIS - Boost.Geometryとの統合
49
例)ALTER TABLE テーブル名 add SPATIAL index(列名);
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
• R-tree based
– 完全なトランザクション·サポート
– ファントムリードを防ぐロック
– 最小範囲のレコードを含む
• 小さく、コンパクト
– 現在は二次元データのみサポート
• 将来的に三次元データもサポート予定
– Historical spatial Index DDL構文をサポート
GIS - InnoDB Spatial Indexes
50Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
JSON形式サポート
• ネイティブなJSONデータ型
– 効率的なデータ処理と保管に,ネイティブな内部バイナリ形式をサポート。
• 組み込みJSONファンクション
– 効率よくドキュメントを保存,検索,更新,操作する事を可能にします。
• JSON コンパレーター
– 文書データを容易にSQLクエリと統合することが可能
• Generated Columnsを利用し、ドキュメントにインデックスを利用可能。
– 新しいアナライザーは自動的に,利用可能で最適な機能インデックスを利用します。
51
参照: 12.16.1 JSON Function Reference
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
JSON関数
52
新しいデータ型としてJSON型をサポート
しています。JSON型は格納されるデータ
形式が正しいかを自動的にチェックする
Document Validationを持ち、
ドキュメントをバイナリ化して格納することで
参照性能の向上を図っています。
CREATE TABLE `T_JSON` ( `id` int(10) NOT NULL AUTO_INCREMENT, `body` json DEFAULT NULL,
`WithTax` decimal(10,2) GENERATED ALWAYS AS (json_extract(body,'$.price')*1.08) VIRTUAL,
PRIMARY KEY (`id`), KEY `idx_total_cost_v` (`WithTax`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4
JSON_APPEND()
JSON_OBJECT()
JSON_ARRAY_INSERT()
JSON_CONTAINS()
JSON_CONTAINS_PATH()
JSON_EXTRACT()
JSON_KEYS()
JSON_SEARCH()
more ….
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
JSONデータの検索
Generated Columnを利用した,高速なドキュメントのインデックス検索
53
Generated Columnにて作成した列に対して、
作成したインデックスを利用する事により、
JSONドキュメントの検索にインデックスを利用可能
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7.7 セキュリティの強化
• mysql_install_dbコマンド非推奨
– mysqldの--initializeまたは--initialize-insecureオプションで初期化
• CREATE USER文とALTER USER文にオプション追加
– SSL, PASSWORD EXPIRE, ACCOUNT [LOCK | UNLOCK]
• mysql.userテーブルのPassword列がauthentication_stringに変更に
• SET PASSWORD文およびPASSWORD()関数が非推奨
– ALTER USER文での設定を推奨
• ENCRYPT, DES_ENCRYPT, DES_DECRYPT関数非推奨 AES推奨
ユーザ管理とセキュリティ
mysqld --initialize --user=mysql
mysql_install_db --user=mysql
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Security - Encryption, Passwords, Installation
• AES 256 Encryption (Default in MySQL 5.7 )
• パスワードローテーションポリシー
– インスタンス全体、ユーザー単位で設定可能
• 導入:デフォルトで安全に無人インストールを行う事が可能
– インストール時にランダムなパスワードを設定/匿名のアカウントを削除
– テストアカウント, スキーマ(test), デモファイルは作成されなくなりました
55
[ Global Configuration ]
SET GLOBAL default_password_lifetime = 180;
[ Individual user accounts ]
ALTER USER joro@localhost PASSWORD EXPIRE INTERVAL 90 DAY;
ALTER USER joro@localhost PASSWORD EXPIRE DEFAULT;
ALTER USER joro@localhost PASSWORD EXPIRE NEVER;
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
Security – SSL, Proxy User
• SSL
– デフォルトで有効
– 既存の鍵と証明書を自動検出
– 必要に応じて鍵と証明書を自動生成
– 新規サポートユーティリティ: mysql_ssl_rsa_setup
• Extended Proxy User Support
– プロキシ·ユーザー用に認証プラグインの追加
– 複数ユーザーで単一権限セットを共有する事が可能
(ROLE)
Proxyユーザーは、MySQL5.5からサポートされている機能ですが、
追加の認証プラグインが必要でした。MySQL5.7.7RCからは、MySQL標
準のmysql_native_password とsha256_password認証をサポートする事
で、より柔軟にアカウント管理を行う事が出来るようになりました。
56
SET @@global.check_proxy_users = ON;
SET @@global.mysql_native_password_proxy_users = ON;
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 57
Created 5 tables in a single test database on master and used 5 clients to
do inserts on them, in parallel.
まとめ
1
MySQL5.7はMySQL 5.6と比較しても大幅にパフォーマンスが向上しています。
Read Only (Point Select)においては、約2倍程の処理性能が向上しています。
また、General Tablespace, Temporary Tables,全文検索等のInnoDB関連の改良が
多く組み込まれると同時に、オプティマイザーの性能も向上しています。
レプリケーション機能も更に拡張されているので、これまで組めなかった構成をご利用
頂く事で、新たにビジネスをサポートする為のインフラとして活用頂けるかもしれません。
2
運用面においては、SYSスキーマを活用し、管理工数削減しつつ柔軟にMySQLの
状態を把握し、少ないコストでデータベースをより安定稼働させる事が可能になりました。
MySQL5.6で追加されたオンラインDDL処理に関しても、MySQL5.7で更に追加され、
メンテナンスによるサービスダウンタイムを回避する事が可能になりました。
また、新機能として、JSONデータ型によるドキュメント管理機能や細かいセキュリティ
面の強化も行われています。
Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |
有難うございました
58Copyright © 2015, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot

45分で理解する SQL Serverでできることできないこと
45分で理解する SQL Serverでできることできないこと45分で理解する SQL Serverでできることできないこと
45分で理解する SQL ServerでできることできないことInsight Technology, Inc.
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
yoyamasaki
 
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)Insight Technology, Inc.
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
yoyamasaki
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio NakamuraInsight Technology, Inc.
 
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Mikiya Okuno
 
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
Hiroyuki Ohnaka
 
PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説
Masao Fujii
 
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築	【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
SolarisJP
 
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
Insight Technology, Inc.
 
Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021
Hideki Saito
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)
Logico
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
Masao Fujii
 
MySQLインストールのお作法
MySQLインストールのお作法MySQLインストールのお作法
MySQLインストールのお作法
Meiji Kimura
 
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
Insight Technology, Inc.
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentials
tnoda
 
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
SolarisJP
 

What's hot (20)

45分で理解する SQL Serverでできることできないこと
45分で理解する SQL Serverでできることできないこと45分で理解する SQL Serverでできることできないこと
45分で理解する SQL Serverでできることできないこと
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)
[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)
 
MySQLを拡張する
MySQLを拡張するMySQLを拡張する
MySQLを拡張する
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
 
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
 
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
 
PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説
 
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築	【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
【第四回 ゼロからはじめる Oracle Solaris 11】02 統合アーカイブが変える仮想化環境の構築
 
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
 
Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
MySQLインストールのお作法
MySQLインストールのお作法MySQLインストールのお作法
MySQLインストールのお作法
 
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
[db tech showcase Tokyo 2016] A13: 最新版VerticaのAnalytics機能を駆使して実現する簡単ログ分析 by日本...
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentials
 
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
 

Similar to MySQL57 Update@OSC Fukuoka 20151003

[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
Insight Technology, Inc.
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
Ryusuke Kajiyama
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
yoyamasaki
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20Ryusuke Kajiyama
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
Ryusuke Kajiyama
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_public
DAISUKE INAGAKI
 
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクルエンジニア通信
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTE
yoyamasaki
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
Machiko Ikoma
 
MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報
yoyamasaki
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報
yoyamasaki
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
yoyamasaki
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama Insight Technology, Inc.
 
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
オラクルエンジニア通信
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
yoyamasaki
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月
yoyamasaki
 
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
オラクルエンジニア通信
 
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
Machiko Ikoma
 
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
オラクルエンジニア通信
 
ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]
ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]
ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]
オラクルエンジニア通信
 

Similar to MySQL57 Update@OSC Fukuoka 20151003 (20)

[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
[db tech showcase Tokyo 2015] D23:MySQLはドキュメントデータベースになり、HTTPもしゃべる - MySQL Lab...
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_public
 
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTE
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
 
MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
 
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
 
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
MySQL Cluster7.3 GAリリース記念セミナー! MySQL & NoSQL 圧倒的な進化を続けるMySQLの最新機能!
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月
 
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
 
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
 
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
 
ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]
ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]
ITアーキテクトのためのOracle Cloud Platform設計・構築入門 [Oracle Cloud Days Tokyo 2016]
 

More from Shinya Sugiyama

MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較
Shinya Sugiyama
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較
Shinya Sugiyama
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較
Shinya Sugiyama
 
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
Shinya Sugiyama
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理
Shinya Sugiyama
 
Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_clusterLocondo 20190703@inno db_cluster
Locondo 20190703@inno db_cluster
Shinya Sugiyama
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
Shinya Sugiyama
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
Shinya Sugiyama
 
MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要
Shinya Sugiyama
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
Shinya Sugiyama
 
MySQL Partition Engine
MySQL Partition EngineMySQL Partition Engine
MySQL Partition Engine
Shinya Sugiyama
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
Shinya Sugiyama
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
Shinya Sugiyama
 
MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
Shinya Sugiyama
 
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーションMySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
Shinya Sugiyama
 
Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7
Shinya Sugiyama
 
Multi thread slave_performance_on_opc
Multi thread slave_performance_on_opcMulti thread slave_performance_on_opc
Multi thread slave_performance_on_opc
Shinya Sugiyama
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
Shinya Sugiyama
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
Shinya Sugiyama
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
Shinya Sugiyama
 

More from Shinya Sugiyama (20)

MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較MySQLとPostgreSQLの基本的な実行プラン比較
MySQLとPostgreSQLの基本的な実行プラン比較
 
MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較MySQLとPostgreSQLの基本的なパラメータ比較
MySQLとPostgreSQLの基本的なパラメータ比較
 
MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較MySQLとPostgreSQLの基本的なレプリケーション設定比較
MySQLとPostgreSQLの基本的なレプリケーション設定比較
 
MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較MySQLとPostgreSQLの基本的なバックアップ比較
MySQLとPostgreSQLの基本的なバックアップ比較
 
MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理MySQLとPostgreSQLにおける基本的なアカウント管理
MySQLとPostgreSQLにおける基本的なアカウント管理
 
Locondo 20190703@inno db_cluster
Locondo 20190703@inno db_clusterLocondo 20190703@inno db_cluster
Locondo 20190703@inno db_cluster
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
 
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDODB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
 
MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要MySQL8.0 SYS スキーマ概要
MySQL8.0 SYS スキーマ概要
 
MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介MySQL SYSスキーマのご紹介
MySQL SYSスキーマのご紹介
 
MySQL Partition Engine
MySQL Partition EngineMySQL Partition Engine
MySQL Partition Engine
 
Oracle Cloud MySQL Service
Oracle Cloud MySQL ServiceOracle Cloud MySQL Service
Oracle Cloud MySQL Service
 
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
 
MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
 
MySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーションMySQLデータ暗号化と暗号鍵のローテーション
MySQLデータ暗号化と暗号鍵のローテーション
 
Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7Power of SQL and NoSQL with MySQL5.7
Power of SQL and NoSQL with MySQL5.7
 
Multi thread slave_performance_on_opc
Multi thread slave_performance_on_opcMulti thread slave_performance_on_opc
Multi thread slave_performance_on_opc
 
db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
 
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
 

MySQL57 Update@OSC Fukuoka 20151003

  • 1. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |Copyright © 2015, Oracle and/or its affiliates. All rights reserved. MySQL Global Business Unit Shinya Sugiyama / 杉山真也 MySQL Principal Sales Consult MySQL 5.7 技術アップデート OSC Fukuoka Updated: 2015/10/03
  • 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。 以下の事項は、マテリアルやコード、機能を提供することをコミットメントするものではない為、 購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量により決定されます。 SAFE HARBOR STATEMENT 2Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | A Year of Anniversaries! 20 Years: 10 Years: 5 Years: MySQL Initial Release Oracle stewardship of InnoDB Oracle stewardship of MySQL Thank You, MySQL Community, for 20 years of Contributions to MySQL! Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 4 MySQL Mile Stone 4.0 全文検索/GIS (MyISAM) 複数テーブルUPDATE/DELETE 組み込みライブラリ型サーバ OracleMySQL Sun 3.23 MyISAM InnoDB レプリケーション 5.1 プラグガブル・ ストレージエンジン・ アーキテクチャ パーティショニング タスクスケジューラ 5.6 memcached API UNDO表領域 Global Transaction ID マルチスレッドスレーブ オンラインALTER TABLE トランスポータブル表領域 5.5 InnoDBがデフォルトに 準同期型レプリケーション PERFORMANCE_SCHEMA 1.0-3.22以前 ストレージエンジン (ISAM, HEAP) マルチスレッド Windows対応/64bit対応 日本語文字コード (SJIS/UJIS) 5.0 ストアドプロシージャ ストアドファンクション カーソル/トリガ/ビュー XAトランザクション INFORMATION_SCHEMA 4.1 Unicode対応 サブクエリ CSV, ARCHIVE ndbcluster 1995 2000 2005 2010 2015 5.7+ 新コストモデル オプティマイザ ロスレス レプリケーション マルチソース レプリケーション グループ レプリケーション 全文検索CJK対応/GIS (InnoDB) セキュリティ強化 データディクショナリ NoSQLオプション Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 5. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 Release Candidate Available! 5 InnoDBの機能拡張: Online&Bulk load オペレーション高速化 レプリケーションの改良 (multi-source, multi-threaded slaves等) 新しいオプティマイザコストモデル: greater user control & better query performance Performance Schemaの拡張 MySQL SYS Schemaの拡張 パフォーマンス & 拡張性 管理性 MySQL 5.6比2倍の速度 セキュリティの向上: より安全な初期化, セットアップ&管理 JSONのSupport ドキュメント管理 RC Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 6. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 Release Candidate Available! 6 InnoDBの機能拡張: Online&Bulk load オペレーション高速化 レプリケーションの改良 (multi-source, multi-threaded slaves等) 新しいオプティマイザコストモデル: greater user control & better query performance Performance Schemaの拡張 MySQL SYS Schemaの拡張 パフォーマンス & 拡張性 管理性 MySQL 5.6比2倍の速度 セキュリティの向上: より安全な初期化, セットアップ&管理 JSONのSupport ドキュメント管理 RC Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 RCにおける主な改良点 • InnoDB: トランザクション処理性能, 可用性, IO性能の向上 • Optimizer: より詳細なEXPLAIN, パーサ, SQL処理性能 • Lock: 単一コネクションで複数のユーザレベルロック, リファクタリング • 機能拡張: Trigger, 32k and 64k pages, クエリ・リライト・プラグイン,生成列 • 全文検索: InnoDB 全文検索, 中国語, 日本語, 韓国語対応 • レプリケーション: マルチソースレプリケーション, グループレプリケーション 7 Available Now! dev.mysql.com/downloads/mysql/ Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 8. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 0 100,000 200,000 300,000 400,000 500,000 600,000 700,000 8 16 32 64 128 256 512 1,024 QueriesperSecond Connections MySQL 5.7: Sysbench Read Only (Point Select) MySQL 5.7 MySQL 5.6 MySQL 5.5 MySQL 5.7: Sysbench Benchmark Intel(R) Xeon(R) CPU E7-4860 x86_64 4 sockets x 10 cores-HT (80 CPU threads) 2.3 GHz, 512 GB RAM Oracle Linux 6.5 645,000 QPS 8 MySQL 5.6より2倍高速 MySQL 5.5より3倍高速 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 9. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7: InnoDB, NoSQL With Memcached MySQL 5.6より6倍以上高速 0 200,000 400,000 600,000 800,000 1,000,000 1,200,000 8 16 32 64 128 256 512 1,024 QueriesperSecond Connections MySQL 5.7 vs 5.6 - InnoDB & Memcached MySQL 5.7 MySQL 5.6 9 Intel(R) Xeon(R) CPU E7-4860 x86_64 4 sockets x 10 cores-HT (80 CPU threads) 2.3 GHz, 512 GB RAM Oracle Linux 6.5 1,000,000 QPSThank you, Facebook Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 10. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7: 秒間接続数 MySQL 5.6より1.7倍高速 0 10,000 20,000 30,000 40,000 50,000 60,000 70,000 80,000 MySQL 5.5 MySQL 5.6 MySQL 5.7 Connections/Second Connections Per Second MySQL 5.5 MySQL 5.6 MySQL 5.7 10 Intel(R) Xeon(R) CPU E7-4860 x86_64 4 sockets x 10 cores-HT (80 CPU threads) 2.3 GHz, 512 GB RAM Oracle Linux 6.5 参照:Improving connect/disconnect performance 67,000 接続/秒 MySQL 5.5より2.5倍高速 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 11. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | オプティマイザ – 新コストモデル • パーサとオプティマイザのリファクタリング • 新しいコストモデルによりストレージエンジンでの処理を改善 – より正確で動的なコスト見積もり – キーの参照、テーブルスキャン、レンジスキャン、インデックススキャンなど – コストベースの意思決定で、経験則のみに基づく判断を回避 • インデックスからレコードへの参照の見積もり改善 • コスト値はEXPLAINのJSON出力に含まれる • 様々な追加要素にてコスト調整が可能 – ディスクI/O処理性能 – メモリ処理性能 11 SQL文の実行性能を向上 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 12. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | オプティマイザ – その他 • INを用いた問いクエリ処理の最適化 • フルテキストクエリ処理の最適化 • より効率の良いソート処理 • SQL標準に準拠した”ONLY_FULL_GROUP_BY” SQLモード 12Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | オプティマイザ – JSON EXPLAINへのコスト情報追加 • JSON EXPLAINを拡張 – 出力可能なコスト情報を全て表示 – MySQL WorkbenchのVisual Explainにも表示 13 { "query_block": { "select_id": 1, "cost_info": { "query_cost": "200.40" }, "table": { "table_name": "nicer_but_slower_film_list", "access_type": "ALL", "rows_examined_per_scan": 992, "rows_produced_per_join": 992, "filtered": 100, "cost_info": { "read_cost": "2.00", "eval_cost": "198.40", "prefix_cost": "200.40", "data_read_per_join": "852K" }, "used_columns": [ "FID", "title", "description", "category", "price", "length", "rating", "actors" ], ... より具体的な値をベースに最適化を実施可能に Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | InnoDB - General Tablespace Support 14 General TablespaceはSystem Tablespaceに類似した共有型のTablespaceです。その為、複数のテーブルを保持する 事が可能で、全てのテーブルフォーマットにも対応しています。相対,若しくは独立したディレクトリーに作成する事が可能。 [USER01]> CREATE TABLESPACE U_TABLESPACE01 ADD DATAFILE '/home/mysql/user_tablespace01.ibd' Engine=InnoDB; Query OK, 0 rows affected (0.01 sec) [USER01]> CREATE TABLESPACE U_TABLESPACE02_8K ADD DATAFILE '/home/mysql/user_tablespace02_8k.ibd' FILE_BLOCK_SIZE = 8192 Engine=InnoDB; Query OK, 0 rows affected (0.01 sec) [USER01]> CREATE TABLE `T_USER01` ( > `id` int(11) NOT NULL AUTO_INCREMENT, `text` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) > ) TABLESPACE = U_TABLESPACE01 ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; Query OK, 0 rows affected (0.01 sec) [USER01]> CREATE TABLE `T_USER02_8K` ( > `id` int(11) NOT NULL AUTO_INCREMENT, `text` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) >) TABLESPACE = U_TABLESPACE02_8K ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 > ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE =8; Query OK, 0 rows affected (0.00 sec) 参照:13.1.15 CREATE TABLESPACE Syntax Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 15. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | InnoDB - Native partitioning Support 15 InnoDBのネイティブパーティショニング - これまでのパーティショニング固有の制限事項を排除可能に - 多数のパーティションが存在する場合のメモリ消費を抑制 Handler (ha_innopart) Encapsulate all partitioning in one single handler ‘Main' handler (pointed out by TABLE::file) which in turn have one handler per partition where all read/writes are forwarded. 参照: InnoDB Native Partitioning – Early Access CREATE TABLE `t_partition_h` ( `UID` int(10) unsigned NOT NULL AUTO_INCREMENT, `COMMENT` varchar(1024) DEFAULT NULL, PRIMARY KEY (`UID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 /*!50100 PARTITION BY HASH (UID) PARTITIONS 8192 */ CREATE TABLE `t_partition_r` ( `UID` int(10) unsigned NOT NULL AUTO_INCREMENT, `COMMENT` varchar(1024) DEFAULT NULL, PRIMARY KEY (`UID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 /*!50100 PARTITION BY RANGE (UID) (PARTITION p0 VALUES LESS THAN (100) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (200) ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN (300) ENGINE = InnoDB, PARTITION p3 VALUES LESS THAN (400) ENGINE = InnoDB, PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ main handler (ha_partition) Partition 1 handler ha_innobase Partition 2 handler ha_innobase Partition N handler ha_innobase ……… Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 16. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | InnoDB - Temporary Tables 16 Contains metadata about active InnoDB temporary tables This variable was added in MySQL 5.7.5. The default value was changed to INNODB in MySQL 5.7.6. この変更により、optimizerはディスク上の内部 一時テーブルとしてInnoDBストレージエンジン を使用するようになりました。 参照: 8.4.4 How MySQL Uses Internal Temporary Tables internal_tmp_disk_storage_engine 一時テーブルを利用した処理の高速化 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 17. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | InnoDB - Temporary Tables • 一時テーブル専用の表領域を新規追加 – CREATE/DROPのパフォーマンスを改善 – DDLによる変更が短縮され,一部ディスクI/Oも削減 • DMLオペレーションの最適化 – No REDO logging, no change buffering, less locking • 内部的な新たなテンポラリーテーブル – ACID/MVCCに対応した専用の一時テーブル – 軽量且つ超高速で、中間のクエリの実行操作に最適 17 参照:14.11 InnoDB Startup Options and System Variables Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Avoid Creating Temporary Table for UNION ALL SELECT * FROM T_UNION01 UNION ALL SELECT * FROM T_UNION02; • 5.6: 常にすべてのUNIONの結果を一時テーブルで実現する。 • 5.7: ソート処理に使用されない限り、結果は一時テーブルを利用せずクライアントに直接送信されます • 5.7: 最後の問合せブロックが終了するまで待つ必要が無い為、クライアントは最初の行を直ぐに受け取る事が可能 • 5.7: 少ないメモリとディスク消費量 参照:MySQL 5.7: only_full_group_by Improved UNION ALLクエリ実行時、一時テーブルを不使用 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 19. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | INDEXにおける改善 • BULK LOADSによる高速なINDEX作成 • ボトムアップソートを行いINDEXを構築 – Improves speed by increasing locality and decreasing node splitting • PAGEがフルになった場合のみ圧縮が行われる • 各PAGEの空き容量を”innodb_fill_factor”オプションでコントロール • パフォーマンス向上 – 2-3x ADD/CREATE INDEXのパフォーマンスの改善 – 2-5% 標準INSERTオペレーションのパフォーマンス改善 19 innodb_fill_factor defines the percentage of space on each B-tree page that is filled during a sorted index build, with the remaining space reserved for future index growth. As of MySQL 5.7.5, InnoDB performs a bulk load when creating or rebuilding indexes. Prior to the introduction of bulk load index creation, index entries were inserted into the B-tree one record at a time using insert APIs. 参照:14.12.17 Bulk Load for CREATE INDEX Update用 Page Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 20. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | InnoDB Compression Thank you, SanDisk Fusion-io • ページレベルでの透過的圧縮 – バックグラウンドスレッドにより自動的に圧縮 – IOレイヤにて管理 – スパースファイルを使用 サポート済みOSカーネルおよびファイルシステム(NVMFS)が必要 • IO削減 – MySQLの性能向上 – ストレージ利用効率向上 – 書き込みサイクル削減、SSDのライフサイクルを維持 • 全てのInnoDBのデータ、システム表領域、UNDOログが対象 20 参照:fusionio.com Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 21. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7におけるロック 単一コネクションで複数のユーザレベルロック • ユーザレベルロックによって相互に排他制御を利用 – 複数のリソースにアクセスする場合 – テーブルレベルまたは行レベルのロックが不適切な場合 • 一連のGET_LOCK()関数にて複数のロックを要求 • 独自のユーザレベルロック実装を置き換え – MDL(メタデータロック)ロックマネージャを利用 – ユーザレベルロック、メタデータロック、テーブルのフラッシュの 待ちなどによるデッドロックを検知し通知 21 Thank you, Konstantin Osipov! Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 22. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Improved metadata locking(MDL) • Fast-path for DML locks (“fast-path”) • Lock-free DML lock acquisition • Lock-free hash – Now uses MurmurHash library • 単一テーブルへのDMLアクセスに関してのボトルネックを排除 – 10% スループット向上:OLTP_RO/POINT_SELECT sysbench – 負荷の高い典型的なDML処理を最適化 22 参照: Removing Scalability Bottlenecks in the Metadata Locking and THR_LOCK Subsystems in MySQL 5.7 MySQL-5.7 improves DML oriented workloads WL#7305: Improve MDL scalability by using lock-free hash WL#7304: Improve MDL performance and scalability by implementing "fast-path" for DML locks 参照: https://sites.google.com/site/murmurhash/ Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 23. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Improved SQL Semantics • Triggers – テーブル毎に複数のトリガを作成可能 • Error reporting – 診断エリアをクリア 23 As of MySQL 5.7.2, it is possible to define multiple triggers for a given table that have the same trigger event and action time. For example, you can have two BEFORE UPDATE triggers for a table. 参照:Support for multiple triggers per table for the same value of action/timing. Error Code Description 1000 ~ Codes are currently numbered consecutively (~1974使用済) 2000 ~ Second range of error codes used by the client 3000 ~ The new 5.7 server error codes will now instead start at 3000 ~ Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 24. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Additional Support for 32K and 64K pages size 24 MySQLインスタンス内の全てのInnoDBのテーブルスペースのページ·サイズを指定します。 この値はインスタンス構築時に設定し、その後設定した値が継続して適用されます。 The size in bytes of the buffer that InnoDB uses to write to the log files on disk. The default value changed from 8MB to 16MB in 5.7.6 with the introduction of 32k and 64k innodb_page_size values. Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 25. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | クエリ・リライト・プラグイン • クエリの書き換え (パースの前と後) • パースした後での書き換えプラグイン –アプリケーションを変更することなく問題のあるクエリを書き換え –ヒントの追加 –JOIN順の変更 • ORマッパーやサードパーティ製のアプリなどが発行する 問題となり得るクエリなどに対応 25Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 26. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 26 クエリ・リライト・プラグイン – Sample Rule Rewrite Rule Rewrite Result Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 27. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7: サーバサイドでのSQL文タイムアウト Thank you Davi Arnaut! • サーバサイドにてSQL文をタイムアウト – サーバ全体、セッション単位、SELECT文単位で設定可能 • WindowsおよびSolarisにも対応 SELECT MAX_EXECUTION_TIME = 109 * FROM my_table; 27 Database User A User B Batch 処理 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 28. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Generated Column Support 28 CREATE TABLE `T_Generated_Column` ( `pid` int(10) unsigned NOT NULL AUTO_INCREMENT, `pname` varchar(1024) DEFAULT NULL, `price` decimal(10,2) DEFAULT NULL, `qty` int(10) DEFAULT NULL, `total` decimal(10,2) GENERATED ALWAYS AS (price * qty) STORED, `WithTax` decimal(10,2) GENERATED ALWAYS AS (total * 1.08) VIRTUAL, PRIMARY KEY (`pid`), KEY `IDX_TOTAL` (`total`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 式から生成される列(2種類) - VIRTUAL(default) : 読み込み時に計算され, データ保存されない。 - STORED: inserted/updated時に計算され,データは保存される。(Primary Key設定可) Useful for: - インデックス追加による、クエリーパフォーマンス向上 (STOREDはPKを含む、複合条件でフィルター可能) - 複雑な条件に対してのマテリアライズドキャッシュ利用可 - クエリ式を簡素化にする事が可能 <type> [ GENERATED ALWAYS ] AS ( <expression> ) [ VIRTUAL|STORED ] [ UNIQUE [KEY] ] [ [PRIMARY] KEY ] [ NOT NULL ] [ COMMENT <text> ] 参照: Generated Columns in MySQL 5.7.5 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 29. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Generated Column Support 29 Generated Columnに対してIndex作成が可能なので、 Where句はindexを利用し最適なコストでデータを抽出可能 参照: Virtual Columns and Effective Functional Indexes in InnoDB Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 30. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | InnoDB -全文検索(Full Text Search) - ngram 30 InnoDB Full Text Search (FTS) にて 中国語, 韓国語,日本語をサポート N-gram support for Chinese and Korean, additional MeCab support for Japanese CREATE TABLE `N_DEMO` ( `FTS_N_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, PRIMARY KEY (`FTS_N_ID`), FULLTEXT KEY `ngram_idx` (`title`) /*!50100 WITH PARSER `ngram` */ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; ※ こちらの例では、ngram_token_sizeを2で設定しています。 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 31. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | InnoDB -全文検索 (Full Text Search) - mecab 31 InnoDB Full Text Search (FTS) にて 中国語, 韓国語,日本語をサポート N-gram support for Chinese and Korean, additional MeCab support for Japanese CREATE TABLE `M_DEMO` ( `FTS_M_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, PRIMARY KEY (`FTS_M_ID`), FULLTEXT KEY `mecab_idx` (`title`) /*!50100 WITH PARSER `mecab` */ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 32. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • GTIDの改良 – GTIDモードレプリケーションへのオンライン移行 – Slave側のバイナリーログはオプション設定に • 準同期レプリケーションの改良 – ロスレスレプリケーション (データ損失無し) – 複数のスレーブからAcksを待機するオプション • マルチソースレプリケーション – 複数マスターから,単一スレーブへの同期処理 • グループレプリケーション (マルチマスター) • マルチスレッドスレーブのパフォーマンスの強化 • 動的レプリケーションフィルター MySQL 5.7におけるレプリケーションの機能拡張 32 mysql> STOP SLAVE SQL_THREAD; Query OK, 0 rows affected (0.05 sec) mysql> CHANGE REPLICATION FILTER REPLICATE_DO_DB=(db1); Query OK, 0 rows affected (0.00 sec) Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 33. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • 複数のマスターでの変更点を1台の スレーブに集約 – 全てのシャードのデータを集約 – より柔軟なレプリケーション構成 – バックアップ処理を集約 • 準同期レプリケーション&改良版 マルチスレッドスレーブ対応 • スレーブ側でのフィルタリングが可能 MySQL 5.7: マルチソースレプリケーション Binlog Master 1 Binlog Master 2 … … Binlog Master N IO 1 Relay 1 Coordinator W1 W2 … WX IO 2 Relay 2 Coordinator W1 W2 … WX … … Coordinator W1 W2 … WX IO N Relay N Coordinator W1 W2 … WX Slave 33Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 34. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • シェアード・ナッシング型”疑似”同期レプリケーション • 更新はマルチ・マスタ型でどこでも可能 – 矛盾の検知と解決(トランザクションのロールバック – “Optimistic State Machine” レプリケーション • グループメンバーの管理と障害検知を自動化 – サーバのフェールオーバー不要 – 構成の拡張/縮小の柔軟性 – 単一障害点無し – 自動再構成 • 既存構成との統合 – InnoDB – GTIDベースのレプリケーション – PERFORMANCE_SCHEMA MySQL 5.7: グループレプリケーション Application MySQL Masters Replication Plugin API MySQL Server Group Comms (Corosync) 34Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 35. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • シングルスレッドのスレーブと比較し て 5倍 のスループット – アプリケーション側での変更不要 – バイナリログのグループコミットでの遅延 を伴う操作不要 • GTID & クラッシュセーフスレーブ利用 • Sysbench OLTP test – 1,000万行 – SSD / 48 core HT / 512 GB RAM MySQL 5.7: スキーマ内マルチスレッドスレーブ 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 0 4 16 25 50 100 200 Worker Threads Slave Transactions per Second Baseline 50 clients 100 clients 150 clients 200 clients 35 --slave-parallel-type 1. DATABASE : (Default) Use the db partitioned MTS (1 worker per database) 2. LOGICAL_CLOCK: Use logical clock based parallelization mode. Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 36. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 36 スキーマ内マルチスレッドスレーブ – Sample View 参照:MySQL 5.7 Enhanced MTS Created 5 tables in a single test database on master and used 5 clients to do inserts on them, in parallel. Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 37. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 37 MySQL Slave Replication Filters Dynamic REPLICATE_DO_DB REPLICATE_IGNORE_DB REPLICATE_DO_TABLE REPLICATE_IGNORE_TABLE REPLICATE_WILD_DO_TABLE REPLICATE_WILD_IGNORE_TABLE REPLICATE_REWRITE_DB MySQL-5.7.3の新しく導入された “CHANGE REPLICATION FILTER” コマンドを利用する事で、 ユーザーは*slave* 側のレプリケーションフィルターを動的に、サーバーの再起動せずに適用する 事が可能です。 MySQL-5.7.3以前は、ユーザーはOptionファイル(my.cnf)か、コマンドラインパラメータを使用して フィルタリングルールを設定することが出来ますが、いずれの場合もMySQLサーバはフィルタリング ルールの変更を反映する為に再起動する必要があります。 The following slave replication filters can be changed dynamically using this command. mysql> STOP SLAVE SQL_THREAD; Query OK, 0 rows affected (0.05 sec) mysql> CHANGE REPLICATION FILTER REPLICATE_DO_DB=(db1); Query OK, 0 rows affected (0.00 sec) 例) フィルター設定手順 参照:MySQL-5.7.3- Making MySQL Slave Replication Filters Dynamic Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 38. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 Release Candidate Available! 38 InnoDBの機能拡張: Online&Bulk load オペレーション高速化 レプリケーションの改良 (multi-source, multi-threaded slaves等) 新しいオプティマイザコストモデル: greater user control & better query performance Performance Schemaの拡張 MySQL SYS Schemaの拡張 パフォーマンス & 拡張性 管理性 MySQL 5.6比2倍の速度 セキュリティの向上: より安全な初期化, セットアップ&管理 JSONのSupport ドキュメント管理 RC Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 39. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 RCにおける運用サポート機能 • Performance Schema: 性能統計情報のさらなる追加 • オンライン処理においての機能拡張 • SYSLOGをLinux/Windows共にネイティブサーポート • GIS機能をInnoDBの空間インデックスとBoost.Geometryの統合でサポート • JSONデータ型と関数をサポートしドキュメント管理をサポート • Security強化として,簡単で安全な初期設定と管理をサポート 39 • Replication for better scalability and availability • Fabric for high availability and sharding Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 40. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | メモリ統計情報 • 統計情報の収集 – メモリの利用タイプ別 (キャッシュ、内部バッファ…) memory_summary_*テーブル – スレッド/アカウント/ユーザ/ ホスト毎のメモリ処理 • 含まれる属性情報 – メモリ利用量 (バイト) – 処理数 – 最大/最小 SQL文統計情報 • ストアドプロシージャ • ストアドファンクション • プリペアードステートメント • トランザクション 追加情報 • レプリケーションスレーブ情報 • MDLロック統計情報 • スレッドごとのユーザ変数 • Server stage tracking • 長時間実行されているSQL文 • メモリフットプリントとオーバー ヘッドの削減 MySQL 5.7: Performance Schema 40Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 41. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL SYS Schema DB管理者、開発者や運用担当者を支援 • DB管理者や運用担当者の作業効率を改善 - サーバの稼働状況、ユーザやホストの状況、主要な稼働指標 - 性能問題の発見、分析および改善 • 状況をより簡単に把握し理解するための複数のビュー - IO量の高いファイルや処理、ロック、コストの高いSQL文 - テーブル、インデックス、スキーマの統計 • 他のデータベースにおけるSYS類似機能: - Oracle V$表 (動的パフォーマンスビュー) - Microsoft SQL Server DMV (Dynamic Management Views) 41 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 42. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 42 MySQL SYS Schema – sample view (1) InnoDB Buffer Memory Usage Global Memory usage broken down by allocation type Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 43. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 43 MySQL SYS Schema – sample view (2) statement_analysis (SQLステートメント関連)user_summary_by_file_io_type (ユーザー関連) Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 44. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | SYS Schema補足情報 ■The MySQL SYS Schema (Video Streaming) トピック: 管理及びモニタリング, パフォーマンスとスケーラビリティ プレゼンター: Mark Leith, Senior Software Development Manager, Oracle http://www-jp.mysql.com/news-and-events/web-seminars/the-mysql-sys-schema/ 44 ■ The MySQL SYS Schemaドキュメント https://oracleus.activeevents.com/2014/connect/fileDownload/session/72527FD4 2DFF7B2148314B9E72BE7B6A/CON3751_Leith-mysql_sys_schema_oow_2014.pdf GUI: http://www-jp.mysql.com/products/workbench/ SCRIPT:https://github.com/MarkLeith/mysql-sys ■ The MySQL SYS Schema設定 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 45. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | オンライン処理の拡張 45 • Resize the InnoDB Buffer Pool online – オンラインでのバッファーサイズのチューニング – データベースの使用パターンの変化にリアルタイムで適応 • Separate UNDO tablespace – 自動オンラインUNDOログ切り捨て(MySQL 5.7.5~) – UNDOログファイルサイズの増加を回避する事が可能 • Dynamic configuration – Making existing settings dynamically configurable – As a design principle for new features & settings – その他、幾つかのレプリケーションの設定変更等も オンラインで変更可能になりました。 参照:14.4.8 Truncating Undo Logs That Reside in Undo Tablespaces Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 46. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 46 Additional Online ALTER TABLE support - VARCHARサイズ拡張 (例) varchar(100) → varchar(255) ALTER TABLE T_ONLINE_DDL ALGORITHM=INPLACE, CHANGE COLUMN text text VARCHAR(255); オンライン処理の拡張 (DDL) - Rename Index ALTER TABLE T_ONLINE_DDL RENAME INDEX idx_text TO index_text; Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 47. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 : Linux/Unix環境でのSyslogサポート • syslogのネイティブサポート • シンプルなオプションでsyslogにログを出力 • サーバの起動オプションとして設定 • サーバ稼働中に動的に変更可能 – システム変数 log_syslog (ON/OFF, デフォルトはOFF). 47 Thank you, Simon Mudd at booking.com Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 48. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Improved Tools • Improved innochecksum – Specify checksum algorithm (innodb,crc32,none) – Rewrite current checksum (--write ) – supports files greater than 2GB in size • SSL support to mysqlbinlog tool リモートインスタンスとの通信を暗号化 • Rewrite of mysql_upgrade into C from perl – Allows direct calls to things like mysqlcheck • Rewrite of mysql_secure_installation and mysql_install_db scripts to C++ – Improve security and fix issues 48Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 49. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • 独自コードの置き換え – 空間図形情報の計算 – 空間図形情報の分析 • OGC(Open Geospatial Consortium)準拠 – パフォーマンスの向上 • Boost.Geometryによる効果 – エキスパートとの交流 – 非常に活発なコミュニティ • Boost.Geometryへのコントリビュートも MySQL 5.7: GIS - Boost.Geometryとの統合 49 例)ALTER TABLE テーブル名 add SPATIAL index(列名); Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 50. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | • R-tree based – 完全なトランザクション·サポート – ファントムリードを防ぐロック – 最小範囲のレコードを含む • 小さく、コンパクト – 現在は二次元データのみサポート • 将来的に三次元データもサポート予定 – Historical spatial Index DDL構文をサポート GIS - InnoDB Spatial Indexes 50Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 51. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JSON形式サポート • ネイティブなJSONデータ型 – 効率的なデータ処理と保管に,ネイティブな内部バイナリ形式をサポート。 • 組み込みJSONファンクション – 効率よくドキュメントを保存,検索,更新,操作する事を可能にします。 • JSON コンパレーター – 文書データを容易にSQLクエリと統合することが可能 • Generated Columnsを利用し、ドキュメントにインデックスを利用可能。 – 新しいアナライザーは自動的に,利用可能で最適な機能インデックスを利用します。 51 参照: 12.16.1 JSON Function Reference Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 52. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JSON関数 52 新しいデータ型としてJSON型をサポート しています。JSON型は格納されるデータ 形式が正しいかを自動的にチェックする Document Validationを持ち、 ドキュメントをバイナリ化して格納することで 参照性能の向上を図っています。 CREATE TABLE `T_JSON` ( `id` int(10) NOT NULL AUTO_INCREMENT, `body` json DEFAULT NULL, `WithTax` decimal(10,2) GENERATED ALWAYS AS (json_extract(body,'$.price')*1.08) VIRTUAL, PRIMARY KEY (`id`), KEY `idx_total_cost_v` (`WithTax`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 JSON_APPEND() JSON_OBJECT() JSON_ARRAY_INSERT() JSON_CONTAINS() JSON_CONTAINS_PATH() JSON_EXTRACT() JSON_KEYS() JSON_SEARCH() more …. Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 53. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | JSONデータの検索 Generated Columnを利用した,高速なドキュメントのインデックス検索 53 Generated Columnにて作成した列に対して、 作成したインデックスを利用する事により、 JSONドキュメントの検索にインデックスを利用可能 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 54. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7.7 セキュリティの強化 • mysql_install_dbコマンド非推奨 – mysqldの--initializeまたは--initialize-insecureオプションで初期化 • CREATE USER文とALTER USER文にオプション追加 – SSL, PASSWORD EXPIRE, ACCOUNT [LOCK | UNLOCK] • mysql.userテーブルのPassword列がauthentication_stringに変更に • SET PASSWORD文およびPASSWORD()関数が非推奨 – ALTER USER文での設定を推奨 • ENCRYPT, DES_ENCRYPT, DES_DECRYPT関数非推奨 AES推奨 ユーザ管理とセキュリティ mysqld --initialize --user=mysql mysql_install_db --user=mysql Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 55. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Security - Encryption, Passwords, Installation • AES 256 Encryption (Default in MySQL 5.7 ) • パスワードローテーションポリシー – インスタンス全体、ユーザー単位で設定可能 • 導入:デフォルトで安全に無人インストールを行う事が可能 – インストール時にランダムなパスワードを設定/匿名のアカウントを削除 – テストアカウント, スキーマ(test), デモファイルは作成されなくなりました 55 [ Global Configuration ] SET GLOBAL default_password_lifetime = 180; [ Individual user accounts ] ALTER USER joro@localhost PASSWORD EXPIRE INTERVAL 90 DAY; ALTER USER joro@localhost PASSWORD EXPIRE DEFAULT; ALTER USER joro@localhost PASSWORD EXPIRE NEVER; Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 56. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Security – SSL, Proxy User • SSL – デフォルトで有効 – 既存の鍵と証明書を自動検出 – 必要に応じて鍵と証明書を自動生成 – 新規サポートユーティリティ: mysql_ssl_rsa_setup • Extended Proxy User Support – プロキシ·ユーザー用に認証プラグインの追加 – 複数ユーザーで単一権限セットを共有する事が可能 (ROLE) Proxyユーザーは、MySQL5.5からサポートされている機能ですが、 追加の認証プラグインが必要でした。MySQL5.7.7RCからは、MySQL標 準のmysql_native_password とsha256_password認証をサポートする事 で、より柔軟にアカウント管理を行う事が出来るようになりました。 56 SET @@global.check_proxy_users = ON; SET @@global.mysql_native_password_proxy_users = ON; Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 57. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 57 Created 5 tables in a single test database on master and used 5 clients to do inserts on them, in parallel. まとめ 1 MySQL5.7はMySQL 5.6と比較しても大幅にパフォーマンスが向上しています。 Read Only (Point Select)においては、約2倍程の処理性能が向上しています。 また、General Tablespace, Temporary Tables,全文検索等のInnoDB関連の改良が 多く組み込まれると同時に、オプティマイザーの性能も向上しています。 レプリケーション機能も更に拡張されているので、これまで組めなかった構成をご利用 頂く事で、新たにビジネスをサポートする為のインフラとして活用頂けるかもしれません。 2 運用面においては、SYSスキーマを活用し、管理工数削減しつつ柔軟にMySQLの 状態を把握し、少ないコストでデータベースをより安定稼働させる事が可能になりました。 MySQL5.6で追加されたオンラインDDL処理に関しても、MySQL5.7で更に追加され、 メンテナンスによるサービスダウンタイムを回避する事が可能になりました。 また、新機能として、JSONデータ型によるドキュメント管理機能や細かいセキュリティ 面の強化も行われています。 Copyright © 2015, Oracle and/or its affiliates. All rights reserved.
  • 58. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 有難うございました 58Copyright © 2015, Oracle and/or its affiliates. All rights reserved.