Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
私は如何にして私は如何にして
詳解詳解 MySQL 5.7MySQL 5.7 をを
執筆するに至ったか執筆するに至ったか
奥野 幹也
Twitter: @nippondanji
mikiya (dot) okuno (at) gmail (do...
免責事項
本プレゼンテーションにおいて示されている見解は、私
自身の見解であって、オラクル・コーポレーションの見
解を必ずしも反映したものではありません。ご了承くだ
さい。
自己紹介
●
MySQL サポートエンジニア
– 日々のしごと
● トラブルシューティング全般
●
Q&A 回答
● パフォーマンスチューニング
など
● ライフワーク
– 自由なソフトウェアの普及
● オープンソースではない
●
GPL 万歳...
おかげさまで
新書籍発売と
相成りました。
ありがとうございます!
詳解 MySQL 5.7
止まらぬ進化に乗り遅れないためのテクニカルガイド
●
MySQL 5.7 の新機能を網羅的に解説
– 175 の新機能
– WorkLog/Bug Id つき
– コンセプト、仕組み、使い方
●
新機能の理解に必要な前...
MySQL 5.7 の
新機能概要
MySQL 5.7 の数多くの新機能
●
実に 150 以上もの新機能が追加された!!
– MySQL 5.7 の新機能完全リスト
https://yakst.com/ja/posts/3037
– yoku0825++
●
レプリケーション関...
レプリケーションの新機能
● マルチスレッドスレーブの改良
●
マルチソースレプリケーション
● 準同期レプリケーションの改良
– ロスレスレプリケーション
– パフォーマンスの改善
– ACK を返すスレーブ数の指定
●
GTID の改良
–...
オプティマイザの新機能
●
EXPLAIN for CONNECTION
●
JSON EXPLAIN
●
コストモデル
– JOIN の順序選択
– 統計情報の正確性
– コストの係数のユーザーによる設定
●
GROUP BY
●
FROM ...
InnoDB の新機能
● 一般テーブルスペース
●
テンポラリテーブルの InnoDB 化
●
バッファプールのオンラインリサイズ
●
UNDO ログの自動トランケート
●
32/64KB ページのサポート
●
REDO ログフォーマットの改...
InnoDB の新機能 つづき
● 全文検索用プラガブルパーサーのサポート
– ngram あるいは MeCab による日本語の全文検索
● 全文検索の最適化
● 空間インデックスのサポート
●
透過的テーブル圧縮
●
透過的テーブルスペース暗...
InnoDB の新機能
性能改善系
● テンポラリテーブルのための最適化
●
RO トランザクションの性能改善
●
RW トランザクションの性能改善
– index­>lock の競合改善( SX ロック)
●
リードビュー作成の性能改善
●
...
セキュリティ関係の新機能
● パスワード期限の設定
●
ユーザーのロック、アンロック
●
SET PASSWORD コマンドの仕様変更
●
CREATE USER … IF NOT EXISTS
●
ログイン不可能なユーザーアカウント
●
SS...
その他の新機能
●
JSON データ型のサポート
● 生成カラム
●
X DevAPI
● トリガーが同一種類のものを複数定義できるようになった
●
sys スキーマが標準で同梱されるようになった
●
パーティショニングされたテーブルの改良
●...
なんか・・・
多すぎね・・・?
新機能が多いのはいいけれども・・・
● 素晴らしい新機能の面々!!
– MySQL 5.6 からの正常進化
– 有用な機能多数
– まさに宝の山!!
● 多すぎる色々と問題あるよね
– 多すぎて全体像が把握できない
● 宝の持ち腐れでは・・・
...
どげんかせんと
いかん・・・・・!!
使いこなせるか
不安なら
解説書を書けば
いいじゃない!!
新機能解説書なんて
売れるのか・・・?
● 企画としての不安はあったけれども、ユーザーにとって必要
なものだと思った。
●
普段から付き合いのある G 社某氏に相談
– あれ・・・
– 目が曇った・・・
– やっぱり、ダメかも。
● 坂井さんに...
ページ数、多いですね。
● 最初に書いた数章で多くなり過ぎないよう釘を刺される。
– 余談:鍵本は当初800ページありました・・・w
– 新機能が多いんだから仕方がないでしょ!!
– と思いつつもスリムな書籍に仕上げなければ・・・
●
多くなり...
新機能が分かるって
どういうこと?
● マーケティングトークは核心に触れていない!!
●
仕組みが分かる
– そもそものアーキテクチャの理解
– どんな課題があったのか
– どこがどう変わったのか
● 使い方が分かる
– 使いどころ
– 具体的...
本書の構成
●
第 1 章: MySQL の概要
– MySQL の紹介
– 過去のバージョンにおける機能追加の歴史
●
以降の章はカテゴリごとの新機能の紹介
– 第 2 章:レプリケーション
– 第 3 章:オプティマイザ
– 第 4 章: ...
各章の構成
● 冒頭部分で新機能を理解するための前提知識を詳解
– 基本的なコンセプト
– アーキテクチャ
– 使い方の詳解など
●
各章のテーマに沿った新機能を詳解
– 新機能が何の課題を解決したかを具体的に解説
– 新機能にひとつひとつ番号...
難しい、あるいは分かりづらい
ポイントもついでに解説
●
第 3 章:オプティマイザ
– MySQL の JOIN のアルゴリズム
– オプティマイザトレース
●
第 4 章: InnoDB
– 教科書的なアーキテクチャ
– 特徴的なアーキテク...
巻末付録: WorkLog/Bug
● 徹底的に詳細を知りたい貴方へ・・・
Q&Aご静聴ありがとうございました。
Upcoming SlideShare
Loading in …5
×

私は如何にして詳解 MySQL 5.7を執筆するに至ったか

5,357 views

Published on

詳解MySQL 5.7 出版記念交流会で使用したスライドです。

Published in: Software
  • Be the first to comment

私は如何にして詳解 MySQL 5.7を執筆するに至ったか

  1. 1. 私は如何にして私は如何にして 詳解詳解 MySQL 5.7MySQL 5.7 をを 執筆するに至ったか執筆するに至ったか 奥野 幹也 Twitter: @nippondanji mikiya (dot) okuno (at) gmail (dot) com @ 詳解 MySQL 5.7  出版記念交流会
  2. 2. 免責事項 本プレゼンテーションにおいて示されている見解は、私 自身の見解であって、オラクル・コーポレーションの見 解を必ずしも反映したものではありません。ご了承くだ さい。
  3. 3. 自己紹介 ● MySQL サポートエンジニア – 日々のしごと ● トラブルシューティング全般 ● Q&A 回答 ● パフォーマンスチューニング など ● ライフワーク – 自由なソフトウェアの普及 ● オープンソースではない ● GPL 万歳!! – 最近はまってる趣味はリカンベント(自転車) ● ブログ – 漢のコンピュータ道 – http://nippondanji.blogspot.com/
  4. 4. おかげさまで 新書籍発売と 相成りました。 ありがとうございます!
  5. 5. 詳解 MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド ● MySQL 5.7 の新機能を網羅的に解説 – 175 の新機能 – WorkLog/Bug Id つき – コンセプト、仕組み、使い方 ● 新機能の理解に必要な前提知識 – 古いバージョンでも適用可能 – アーキテクチャを理解することで 本物の理解を
  6. 6. MySQL 5.7 の 新機能概要
  7. 7. MySQL 5.7 の数多くの新機能 ● 実に 150 以上もの新機能が追加された!! – MySQL 5.7 の新機能完全リスト https://yakst.com/ja/posts/3037 – yoku0825++ ● レプリケーション関連 ● InnoDB 関連 ● オプティマイザー関連 ● セキュリティ関連 ● パフォーマンススキーマ関連 ● GIS 関連 ● JSON 関連 etc etc...
  8. 8. レプリケーションの新機能 ● マルチスレッドスレーブの改良 ● マルチソースレプリケーション ● 準同期レプリケーションの改良 – ロスレスレプリケーション – パフォーマンスの改善 – ACK を返すスレーブ数の指定 ● GTID の改良 – スレーブでの管理が効率化 – 再起動時の GTID 計算方法が効率化 ● オンライン操作の拡充 – GTID 有効化 – CHAMGE MASTER の一部 – レプリケーションフィルター
  9. 9. オプティマイザの新機能 ● EXPLAIN for CONNECTION ● JSON EXPLAIN ● コストモデル – JOIN の順序選択 – 統計情報の正確性 – コストの係数のユーザーによる設定 ● GROUP BY ● FROM 句のサブクエリ ● IN サブクエリ ● UNION ALL ● ソート ● テンポラリテーブル
  10. 10. InnoDB の新機能 ● 一般テーブルスペース ● テンポラリテーブルの InnoDB 化 ● バッファプールのオンラインリサイズ ● UNDO ログの自動トランケート ● 32/64KB ページのサポート ● REDO ログフォーマットの改善 ● バッファプールをダンプする割合の指定 ● ページ統合におけるページ充填率の指定 ● コピーしない ALTER TABLE 操作の増加
  11. 11. InnoDB の新機能 つづき ● 全文検索用プラガブルパーサーのサポート – ngram あるいは MeCab による日本語の全文検索 ● 全文検索の最適化 ● 空間インデックスのサポート ● 透過的テーブル圧縮 ● 透過的テーブルスペース暗号化 ● ダブルライトが不要なとき自動的に無効化 ● NUMA サポートの追加 ● InnoDB モニターの有効化方法変更 ● 情報スキーマの改良 ● デフォルト行フォーマットの指定
  12. 12. InnoDB の新機能 性能改善系 ● テンポラリテーブルのための最適化 ● RO トランザクションの性能改善 ● RW トランザクションの性能改善 – index­>lock の競合改善( SX ロック) ● リードビュー作成の性能改善 ● trx_t のキャッシュ効率改善 ● AHI のミューテックス競合改善 ● ページクリーナーのマルチスレッド化 ● フラッシュアルゴリズムの改善 ● クラッシュリカバリの性能改善 ● ログファイル書き込みの性能改善 ● インデックス作成の高速化 etc
  13. 13. セキュリティ関係の新機能 ● パスワード期限の設定 ● ユーザーのロック、アンロック ● SET PASSWORD コマンドの仕様変更 ● CREATE USER … IF NOT EXISTS ● ログイン不可能なユーザーアカウント ● SSL のセットアップが容易に – キーファイルの自動生成 – mysql_ssl_rsa_setup ● 透過的テーブルスペース暗号化 ● デフォルトの状態がセキュアに – test データベースの廃止 – 匿名ユーザーの廃止 – localhost 以外の root の廃止
  14. 14. その他の新機能 ● JSON データ型のサポート ● 生成カラム ● X DevAPI ● トリガーが同一種類のものを複数定義できるようになった ● sys スキーマが標準で同梱されるようになった ● パーティショニングされたテーブルの改良 ● クライアント系コマンドの改良 ● STRICT モードと IGNORE のリファクタリング ● いくつかのシステムテーブルが InnoDB に変更 etc etc
  15. 15. なんか・・・ 多すぎね・・・?
  16. 16. 新機能が多いのはいいけれども・・・ ● 素晴らしい新機能の面々!! – MySQL 5.6 からの正常進化 – 有用な機能多数 – まさに宝の山!! ● 多すぎる色々と問題あるよね – 多すぎて全体像が把握できない ● 宝の持ち腐れでは・・・ – マーケティングトークにはいいけれども・・・ ● 製品はマーケティングのためのものではない!! – みんな使いこなせるのか? ● 製品は使いこなせてナンボ!!
  17. 17. どげんかせんと いかん・・・・・!!
  18. 18. 使いこなせるか 不安なら 解説書を書けば いいじゃない!!
  19. 19. 新機能解説書なんて 売れるのか・・・? ● 企画としての不安はあったけれども、ユーザーにとって必要 なものだと思った。 ● 普段から付き合いのある G 社某氏に相談 – あれ・・・ – 目が曇った・・・ – やっぱり、ダメかも。 ● 坂井さんに愚痴る – 翔泳社さんを紹介される。 – 紹介から詳解へ至る。
  20. 20. ページ数、多いですね。 ● 最初に書いた数章で多くなり過ぎないよう釘を刺される。 – 余談:鍵本は当初800ページありました・・・w – 新機能が多いんだから仕方がないでしょ!! – と思いつつもスリムな書籍に仕上げなければ・・・ ● 多くなり過ぎないよう意識した内容に。 – 基本的なコンセプトが理解できる。 ● 必要があればアーキテクチャの説明も。 – 新機能の効果が分かる。 – 使い方、使いどころが分かる。 – さらなる詳細は WorkLog で。
  21. 21. 新機能が分かるって どういうこと? ● マーケティングトークは核心に触れていない!! ● 仕組みが分かる – そもそものアーキテクチャの理解 – どんな課題があったのか – どこがどう変わったのか ● 使い方が分かる – 使いどころ – 具体的な使い方 – セットアップ手順など
  22. 22. 本書の構成 ● 第 1 章: MySQL の概要 – MySQL の紹介 – 過去のバージョンにおける機能追加の歴史 ● 以降の章はカテゴリごとの新機能の紹介 – 第 2 章:レプリケーション – 第 3 章:オプティマイザ – 第 4 章: InnoDB – 第 5 章:パフォーマンススキーマと sys スキーマ – 第 6 章: JSON データ型 – 第 7 章:パーティショニング – 第 8 章:セキュリティ – 第 9 章:クライアント&プロトコル – 第 10 章:その他
  23. 23. 各章の構成 ● 冒頭部分で新機能を理解するための前提知識を詳解 – 基本的なコンセプト – アーキテクチャ – 使い方の詳解など ● 各章のテーマに沿った新機能を詳解 – 新機能が何の課題を解決したかを具体的に解説 – 新機能にひとつひとつ番号を追加 ● ディスカッションするときのリファレンスとして
  24. 24. 難しい、あるいは分かりづらい ポイントもついでに解説 ● 第 3 章:オプティマイザ – MySQL の JOIN のアルゴリズム – オプティマイザトレース ● 第 4 章: InnoDB – 教科書的なアーキテクチャ – 特徴的なアーキテクチャ ● 第 5 章:パフォーマンススキーマと sys スキーマ – パフォーマンススキーマの基本的な使い方 ● 第 8 章:セキュリティ – 権限システムの概要 – プロキシーユーザー
  25. 25. 巻末付録: WorkLog/Bug ● 徹底的に詳細を知りたい貴方へ・・・
  26. 26. Q&Aご静聴ありがとうございました。

×