SlideShare a Scribd company logo
1 of 56
Download to read offline
What's New inWhat's New in
MySQL 5.7 InnoDBMySQL 5.7 InnoDB
奥野 幹也
Twitter: @nippondanji
mikiya (dot) okuno (at) gmail (dot) com
@DB Tech Showcase Tokyo 2016
免責事項
本プレゼンテーションにおいて示されている見解は、私
自身の見解であって、オラクル・コーポレーションの見
解を必ずしも反映したものではありません。ご了承くだ
さい。
自己紹介
●
MySQL サポートエンジニア
– 日々のしごと
● トラブルシューティング全般
● Q&A 回答
●
パフォーマンスチューニング
など
●
ライフワーク
– 自由なソフトウェアの普及
● オープンソースではない
● GPL 万歳!!
– 最近はまってる趣味はリカンベント(自転車)
●
ブログ
– 漢のコンピュータ道
– http://nippondanji.blogspot.com/
MySQL 5.7 の
新機能概要
MySQL 5.7 の数多くの新機能
●
実に 150 以上もの新機能が追加された!!
– MySQL 5.7 の新機能完全リスト
https://yakst.com/ja/posts/3037
– yoku0825++
●
レプリケーション関連
●
InnoDB 関連
● オプティマイザー関連
●
セキュリティ関連
●
パフォーマンススキーマ関連
● GIS 関連
● JSON 関連
etc etc...
本日のお題
オプティマイザの新機能
● EXPLAIN for CONNECTION
●
JSON EXPLAIN
● コストモデル
– JOIN の順序選択
– 統計情報の正確性
– コストの係数のユーザーによる設定
● GROUP BY
●
FROM 句のサブクエリ
● IN サブクエリ
●
UNION ALL
● ソート
● テンポラリテーブル
レプリケーションの新機能
● マルチスレッドスレーブの改良
●
マルチソースレプリケーション
● 準同期レプリケーションの改良
– ロスレスレプリケーション
– パフォーマンスの改善
– ACK を返すスレーブ数の指定
● GTID の改良
– スレーブでの管理が効率化
– 再起動時の GTID 計算方法が効率化
● オンライン操作の拡充
– GTID 有効化
– CHAMGE MASTER の一部
– レプリケーションフィルター
セキュリティ関係の新機能
● パスワード期限の設定
●
ユーザーのロック、アンロック
● SET PASSWORD コマンドの仕様変更
● CREATE USER … IF NOT EXISTS
●
ログイン不可能なユーザーアカウント
●
SSL のセットアップが容易に
– キーファイルの自動生成
– mysql_ssl_rsa_setup
●
透過的テーブルスペース暗号化
●
デフォルトの状態がセキュアに
– test データベースの廃止
– 匿名ユーザーの廃止
– localhost 以外の root の廃止
InnoDB の新機能
● 一般テーブルスペース
●
テンポラリテーブルの InnoDB 化
● バッファプールのオンラインリサイズ
● UNDO ログの自動トランケート
●
32/64KB ページのサポート
●
REDO ログフォーマットの改善
● バッファプールをダンプする割合の指定
●
ページ統合におけるページ充填率の指定
●
コピーしない ALTER TABLE 操作の増加
InnoDB の新機能 つづき
● 全文検索用プラガブルパーサーのサポート
– ngram あるいは MeCab による日本語の全文検索
● 全文検索の最適化
● 空間インデックスのサポート
● 透過的テーブル圧縮
●
透過的テーブルスペース暗号化
● ダブルライトが不要なとき自動的に無効化
● NUMA サポートの追加
●
InnoDB モニターの有効化方法変更
●
情報スキーマの改良
● デフォルト行フォーマットの指定
InnoDB の新機能
性能改善系
● テンポラリテーブルのための最適化
●
RO トランザクションの性能改善
● RW トランザクションの性能改善
– index->lock の競合改善( SX ロック)
● リードビュー作成の性能改善
●
trx_t のキャッシュ効率改善
● AHI のミューテックス競合改善
● ページクリーナーのマルチスレッド化
●
フラッシュアルゴリズムの改善
●
クラッシュリカバリの性能改善
● ログファイル書き込みの性能改善
●
インデックス作成の高速化
etc
一般
テーブルスペース
一般テーブルスペースとは
● 従来からある InnoDB のテーブルスペース
– ibdata1
– .ibd ファイル
● innodb_file_per_table=1
– 個別の UNDO ログ
●
一般テーブルスペースとは第三のテーブルスペース
– 明示的に作成する
– 複数のテーブルをまとめて格納する
– 任意のディレクトリ上にデータファイルを作成することが可
能
作成例
mysql> CREATE TABLESPACE ts1 ADD DATAFILE
'/path/to/ssdvol/tablespace.ibd' ENGINE INNODB;
mysql> CREATE TABLE tbl_name1 (... 中略 ...) TABLESPACE ts1;
mysql> CREATE TABLE tbl_name2 (... 中略 ...) TABLESPACE ts1;
一般テーブルスペースの主な用途
● 特定のテーブルだけ別のストレージを割り当てたい
– 頻繁にアクセスされるテーブルに高速なストレージ
– 殆どアクセスされないテーブルに低速で大容量のストレー
ジ
● 複数のテーブルで、同じ圧縮設定を使いたい
●
多数のパーティションをまとめて格納したい
●
大きなバッファプール使用時の効率化
– DROP TABLE によるバッファプールのスキャンを避けたい
圧縮設定
FILE_BLOCK_SIZE
innodb_page_size FILE_BLOCK_SIZE KEY_BLOCK_SIZE 圧縮 / 非圧縮
64K 65536 N/A 非圧縮
32K 32768 N/A 非圧縮
16K 16384 N/A 非圧縮
8192 8 圧縮
4096 4 圧縮
2048 2 圧縮
1024 1 圧縮
8K 8192 N/A 非圧縮
4096 4 圧縮
2048 2 圧縮
1024 1 圧縮
4K 4096 N/A 非圧縮
2048 2 圧縮
1024 1 圧縮
テンポラリテーブルの
InnoDB 化
明示的なテンポラリテーブル
● CREATE TEMPORARY TABLE で作成
●
ストレージエンジンの指定が可能
● 作成したセッションだけからアクセス可能
● アプリケーションが中間結果を格納し、再利用したい場合に
便利
暗黙的なテンポラリテーブル
● クエリの実行途中で自動的に作成される
– 実行過程の中間結果を格納
– UNION, GROUP BY, JOIN + ORDER BY, DISTINCT + ORDER BY, FROM
句のサブクエリ , 一部のビュー
● 作成当初はメモリベース
– MEMORY ストレージエンジン
●
大きくなるとディスクベースへ自動的に変換
– MySQL 5.6 までは MyISAM
– MySQL 5.7 では InnoDB または MyISAM
MySQL 5.7 ではテンポラリテーブルの
オーバーヘッドを徹底的に解消
● CREATE/DROP のオーバーヘッドが激減した
●
REDO ログを生成しない
● 行データにロールバックポインターを持たない
● 更新は DELETE と INSERT によって代替されている
●
ダブルライトをしない
● 変更バッファを使用しない
●
専用のテーブルスペース( ibtmp1 )内に格納され、再起動時に再
作成される
●
ページへのアクセスにおいてラッチをしない
● ページチェックサムをしない
● テーブルのメタデータがディスク上に格納されない
●
アダプティブハッシュインデックスを使わない
● ROWID はテンポラリテーブルごとに固有のものが使われる
UNDO ログの
自動トランケート
innodb_file_per_table
なのに ibdata1 が肥大化
● それは、 UNDO ログのせいかもしれません・・・
– = ロールバックセグメント
● 更新前のデータをコピーしておく場所
– ロールバックするときに用いられる
– MVCC によって参照される
●
パージで開放される
UNDO ログの格納場所
● MySQL 5.5 までの格納場所は ibdata1 で変更不可
●
MySQL 5.6
– デフォルトでは ibdata1
– オプションで分離可能(ファイルは複数)
– ただしサイズ縮小はできない
● MySQL 5.7
– デフォルトでは ibdata1
– オプションで分離可能(ファイルは複数)
– UNDO ログファイルをひとつずつトランケート可能
UNDO ログトランケートの様子
UNDO ログ空き領域
UNDO ログ使用中の領域
innodb_max_
undo_log_size
INACTIVE
初期サイズ = 10MB
INACTIVE にして
空になるまで待つ。
その間は他の UNDO
ログファイルで凌ぐ。
UNDO ログ
ファイルを初期化
UNDO ログファイルの
サイズがしきい値を超えた
バッファプールまわりの
改善
バッファプールの
オンラインリサイズ
● バッファプールサイズの増減を、無停止で実行
– innodb_buffer_pool_chunk_size: デフォルト 128MB
– innodb_buffer_pool_instances: デフォルト 1 or 8
● バッファプールサイズが 1GB 以上の時 8
●
チャンクサイズとインスタンス数の積の倍数でサイズを指定
mysql> SET GLOBAL innodb_buffer_pool_size = 100 * 1024 * 1024 * 1024;
mysql> SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_resize_status';
バッファプールをダンプする
割合の指定
● MySQL 5.6 において、バッファプール上のページの番号をダ
ンプしたり、該当のページをロードする機能が追加された
●
バッファプール上のキャッシュは LRU で管理
– 古いキャッシュデータは再び参照されない可能性が高い
– ダンプしても無駄になるかも
– 比較的最近アクセスされたページだけで OK
●
起動時間短縮
● innodb_buffer_pool_dump_pct: デフォルト 25
透過的テーブル圧縮
圧縮フォーマットって
前からあったよね?
●
innodb_file_format = Barracuda
● CREATE TABLE tblname (…) ENGINE = InnoDB ROW_FORMAT = COMPRESSED
KEY_BLOCK_SIZE=4;
バッファプールが
二重に消費される。
オーバーヘッド大。
透過的って何が?
● ファイルシステムの SPARSE ファイルを利用
●
データを圧縮して未使用領域を SPARSE 化
● CREATE TABLE tblname (…) ENGINE = InnoDB COMPRESSION = lz4;
透過的テーブル圧縮の模式図
注意点
● 使えるかどうかはファイルシステム次第
– Windows: NTFS で利用可能。ただしフォーマット時にクラス
ターサイズをデフォルトの 4KB から 512B に変更する必要
がある。
●
Compression Unit: 64KB → 8KB
– Linux: NVMFS 、 XFS (カーネル 2.6.38 以降)、 ext4 (カーネ
ル 3.0 以降)、 btrfs (カーネル 3.7 以降)などで利用可能
●
SPARSE ファイルはランダムアクセスになりがち
– HDD で使うとえらい目に・・・
– 高速なストレージデバイスを使おう
透過的テーブルスペース
暗号化
透過的テーブルスペース
暗号化とは
● コミュニティ版、商用版の両方で利用可能
●
InnoDB の .ibd ファイルを暗号化
– 書き込み時に暗号化
– 読み込み時に復号化
● 暗号化されるのはファイル上のデータのみ
– メモリ上(バッファプール)のデータは暗号化されない
– 第三者からのファイルアクセスからデータを守る
●
キーリングプラグインと連携
– 鍵管理のためのフレームワーク
– コミュニティ版にはファイルベースの keyring_file プラグイン
が付属
– 商用版には Oracle Key Vault と連携する keyring_okv プラグ
インが付属
透過的テーブルスペース
暗号化の仕組み
使い方
● キーリングの設定
– INSTALL PLUGIN keyring_file SONAME
'keyring_file.so';
●
テーブルの作成
– CREATE TABLE table_name (... 略 ...)
ENCRYPTION='Y';
●
マスターキーのローテーション
– ALTER INSTANCE ROTATE INNODB MASTER KEY;
SX ロック
index->lock の競合
● ひとつのテーブルあるいはインデックスにアクセスが集中す
ると、 index->lock の競合が多発し、ボトルネックになってし
まっていた。
– 排他処理はどうしても必要。
– 同時に実行ができる処理を増やせば良い。
● SX ロックの導入
– 既存の rwlock を拡張。
– S ロック、 X ロックの他に、新たに SX ロックが加えられた。
– SX ロックは S ロックと互換性あり、 SX ロックと X ロックとは
互換性なし。
– X ロックが必要だった処理を見直し、 SX ロックへ変更する
ことで、同時実行可能な S ロックの処理が増えた。
SX ロックの互換性
S ロック SX ロック X ロック
S ロック ○ ○ ×
SX ロック ○ × ×
X ロック × × ×
インデックス作成の
高速化
Fast Index Creation
(MySQL 5.5)
● 従来のインデックス作成は、新しい定義の(インデックス追
加後の定義を持つ)テーブルを作成し、すべてのデータを
再コピーするというものだった。
– インデックス構築中は参照だけが可能であり、更新はブ
ロックされるようになっていた。
● MySQL 5.5 で追加された Fast Index Creation では、セカンダリ
インデックスだけを構築するようになった。
– ただし、参照だけが可能という点は変わらない。
オンライン DDL
(MySQL 5.6)
● DDL 実行中にも更新ができるようになった。
●
これにより、長時間かかるであろう ALTER TABLE も、比較的
気軽に出来るようになった。
● ただし、 ALTER TABLE 開始時と終了時のみ、アクセスが排
他的になる。
– 長時間実行中の SELECT があると、 ALTER TABLE は待たさ
れてしまう。
Sorted Index Build
(New in MySQL 5.7)
● MySQL 5.6 までは、セカンダリインデックスへの挿入は、クラ
スタインデックスから順に 1 行ずつ読み取り、セカンダリイン
デックスへ挿入するというアルゴリズムだった。
– セカンダリインデックスへのアクセスがランダムアクセスに
なるので遅い上にフラグメンテーションが発生する
● MySQL 5.7 ではセカンダリインデックス構築のアルゴリズムが
改善された。
– クラスタインデックスからデータを読み取り、テンポラリファ
イルに格納
– セカンダリインデックスのキーの順にソート
– セカンダリインデックスへ、ソートされた状態で格納
全文検索
プラガブルパーサーのサポート
● MySQL 5.6
– InnoDB がフルテキストインデックスをサポート
– MySQL そのものにはプラガブルパーサーが存在
– ただし Inno DB は独自のフルテキストパーサーを搭載
●
stopword を用いた実装=日本語は扱えない
●
MySQL 5.7
– 標準のプラガブルパーサーをサポート
– stopword を用いないパーサーを選択可能
●
日本語の全文検索が可能!!
パーサーの追加
● MeCab
– 言わずと知れたオープンソースの形態素解析エンジン
– 辞書を用いて日本語を単語に分解
– インデックスのサイズがコンパクト
●
NGRAM
– 文字列を N 文字ごとに区切ってインデックスを構成
– 日本語の意味を考慮しないので、意図しない検索結果
(ノイズ)が多い
– インデックスのサイズは大きくなりがち
使い方
● パーサープラグインのインストール
mysql> INSTALL PLUGIN mecab SONAME
'libpluginmecab.so';
●
テーブルの作成
mysql> CREATE TABLE fttest (
-> a SERIAL ,
-> b VARCHAR(100),
-> FULLTEXT(b) WITH PARSER mecab
-> ) CHARACTER SET utf8;
●
検索例
mysql> insert into fttest (b) values(' この先生
きのこるには '),(' ここではきものをぬげ ');
mysql> select * from fttest where match (b)
against (' きもの ');
性能について
● 正直なところ、検索性能はそんなに速くない
●
InnoDB はトランザクショナルなので堅牢性は高い
● 絶対的な検索性能が必要なら mroonga を使うべき
● カジュアルにちょっと全文検索が欲しいというときに便利
空間インデックス
最小外接矩形
(Minimum Bounding Rectangle)
● 図形に隣接する矩形の中で最小のもの
InnoDB に
R ツリーインデックスが追加
空間データの検索
● MBRContains() 、 MBRWithin() 、 ST_Contains() 、 ST_Within() といった
関数に対して使用可能。
mysql> SELECT id,ST_AsText(g) FROM geomtest
-> WHERE ST_Contains(ST_GeomFromText(
-> 'POLYGON((0 0,150 0,150 150,0 150,0 0))'), g);
mysql> SELECT id,ST_AsGeoJSON(g) FROM geomtest
-> WHERE ST_Contains(ST_GeomFromGeoJson('{ "type":
"Polygon", "coordinates": [ [ [0.0, 0.0], [150.0,
0.0], [150.0, 150.0], [0.0, 150.0], [0.0,
0.0] ] ] }'), g);
MySQL 5.7 では GeoJSON も追加された。
空間インデックスとは関係ないけど
GeoHash というものも追加された。
まとめ
MySQL 5.7 の InnoDB は
超絶進化!!
● 性能向上
– 並列実行性能の向上
– 処理の効率化およびチューニング
– 限界更新性能の向上
●
管理性向上
– 一般テーブルスペースによるテーブルの一括管理
– UNDO ログトランケートによるディスクスペースの節約
– ALTER TABLE の高速化
●
利便性向上
– 透過的データ圧縮
– 透過的暗号化
– 全文検索
– GIS 検索
– MyISAM よ、さらば!
もうこれは
使うしかない!!
宣伝: 新書籍「詳解 MySQL 5.7 」
● MySQL 5.7 の新機能を網羅
– 175 もの新機能を解説
– 新機能の理解に欠かせ
ないアーキテクチャの話
も盛りだくさん
– 本日解説しなかった新
機能も詳しく解説!!
●
8 月 23 日発売予定
Q&Aご静聴ありがとうございました。

More Related Content

What's hot

Innodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドInnodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドYasufumi Kinoshita
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことyoku0825
 
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)Tomoaki Uchida
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)Takanori Sejima
 
基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をしますyoku0825
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションイルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションyoku0825
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編Mikiya Okuno
 
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座Mikiya Okuno
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...NTT DATA Technology & Innovation
 
GKE で始める Private Cluster
GKE で始めるPrivate ClusterGKE で始めるPrivate Cluster
GKE で始める Private ClusterIgarashi Toru
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache CassandraYuki Morishita
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)NTT DATA Technology & Innovation
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 

What's hot (20)

Innodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライドInnodb Deep Talk #2 でお話したスライド
Innodb Deep Talk #2 でお話したスライド
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
 
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
 
基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションイルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
 
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
GKE で始める Private Cluster
GKE で始めるPrivate ClusterGKE で始めるPrivate Cluster
GKE で始める Private Cluster
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
事例で学ぶApache Cassandra
事例で学ぶApache Cassandra事例で学ぶApache Cassandra
事例で学ぶApache Cassandra
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 

Similar to What's New in MySQL 5.7 InnoDB

MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMikiya Okuno
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06Mikiya Okuno
 
いまいまMySQL@OSC2016福岡
いまいまMySQL@OSC2016福岡いまいまMySQL@OSC2016福岡
いまいまMySQL@OSC2016福岡sakaik
 
What's New in MySQL 5.7 Replication
What's New in MySQL 5.7 ReplicationWhat's New in MySQL 5.7 Replication
What's New in MySQL 5.7 ReplicationMikiya Okuno
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会Mikiya Okuno
 
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09Mikiya Okuno
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはyoku0825
 
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会sakaik
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -yoyamasaki
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料yoyamasaki
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)Shinya Sugiyama
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0Ryusuke Kajiyama
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境yoyamasaki
 
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMikiya Okuno
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用についてLINE Corporation
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten Group, Inc.
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQLyoyamasaki
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門Mikiya Okuno
 

Similar to What's New in MySQL 5.7 InnoDB (20)

MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
 
いまいまMySQL@OSC2016福岡
いまいまMySQL@OSC2016福岡いまいまMySQL@OSC2016福岡
いまいまMySQL@OSC2016福岡
 
What's New in MySQL 5.7 Replication
What's New in MySQL 5.7 ReplicationWhat's New in MySQL 5.7 Replication
What's New in MySQL 5.7 Replication
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
 
MySQLとオープンソースビジネスの10年、そして未来へ
MySQLとオープンソースビジネスの10年、そして未来へMySQLとオープンソースビジネスの10年、そして未来へ
MySQLとオープンソースビジネスの10年、そして未来へ
 
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
カジュアルにMySQL Clusterを使ってみよう@MySQL Cluster Casual Talks 2013.09
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLは
 
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
MySQL最新情報と、データベースのお勉強のススメ-第68回PHP勉強会
 
States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -States of Dolphin - MySQL最新技術情報2013秋 -
States of Dolphin - MySQL最新技術情報2013秋 -
 
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境5分で作るMySQL Cluster環境
5分で作るMySQL Cluster環境
 
MySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyondMySQL Cluster 新機能解説 7.5 and beyond
MySQL Cluster 新機能解説 7.5 and beyond
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With Xtrabackup
 
Windows環境でのMySQL
Windows環境でのMySQLWindows環境でのMySQL
Windows環境でのMySQL
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門
 

More from Mikiya Okuno

私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったかMikiya Okuno
 
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方Mikiya Okuno
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version Mikiya Okuno
 
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 SecurityWhat's New in MySQL 5.7 Security
What's New in MySQL 5.7 SecurityMikiya Okuno
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴Mikiya Okuno
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015Mikiya Okuno
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)Mikiya Okuno
 
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかなぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかMikiya Okuno
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜Mikiya Okuno
 
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきかMikiya Okuno
 
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考えるRDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考えるMikiya Okuno
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計Mikiya Okuno
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルMikiya Okuno
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南Mikiya Okuno
 
Rdbms qpstudy-okuno
Rdbms qpstudy-okunoRdbms qpstudy-okuno
Rdbms qpstudy-okunoMikiya Okuno
 
Database qpstudy-okuno
Database qpstudy-okunoDatabase qpstudy-okuno
Database qpstudy-okunoMikiya Okuno
 
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012Mikiya Okuno
 
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門MySQL日本語利用徹底入門
MySQL日本語利用徹底入門Mikiya Okuno
 

More from Mikiya Okuno (20)

私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか私は如何にして詳解 MySQL 5.7を執筆するに至ったか
私は如何にして詳解 MySQL 5.7を執筆するに至ったか
 
リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方リレーショナルデータベースとの上手な付き合い方
リレーショナルデータベースとの上手な付き合い方
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
 
What's New in MySQL 5.7 Security
What's New in MySQL 5.7 SecurityWhat's New in MySQL 5.7 Security
What's New in MySQL 5.7 Security
 
とあるギークのキーボード遍歴
とあるギークのキーボード遍歴とあるギークのキーボード遍歴
とあるギークのキーボード遍歴
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
 
なぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのかなぜ、いまリレーショナルモデルなのか
なぜ、いまリレーショナルモデルなのか
 
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
データモデルについて知っておくべき7つのこと 〜NoSQLに手を出す前に〜
 
人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか人類は如何にして大切な データベースを守るべきか
人類は如何にして大切な データベースを守るべきか
 
RDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考えるRDBにおけるバリデーションをリレーショナルモデルから考える
RDBにおけるバリデーションをリレーショナルモデルから考える
 
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
Mysql toranomaki
Mysql toranomakiMysql toranomaki
Mysql toranomaki
 
Rdbms qpstudy-okuno
Rdbms qpstudy-okunoRdbms qpstudy-okuno
Rdbms qpstudy-okuno
 
Database qpstudy-okuno
Database qpstudy-okunoDatabase qpstudy-okuno
Database qpstudy-okuno
 
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
 
Database smells
Database smellsDatabase smells
Database smells
 
MySQL日本語利用徹底入門
MySQL日本語利用徹底入門MySQL日本語利用徹底入門
MySQL日本語利用徹底入門
 

What's New in MySQL 5.7 InnoDB