MySQL⼊⾨「世界で最も普及しているオープンソース データベース」
梶⼭ 隆輔 / KAJIYAMA, Ryusuke
MySQL Solution Engineering Director, Asia Pacific & Japan
Oracle Groundbreakers Advocate - MySQLMySQL Global Business Unit

The world's most popular open source database

世界で最も普及しているオープンソース データベース
2

Copyright © 2021, Oracle and/or its affiliates

MySQLとは「世界で最も普及している、オープンソースデータベース」• ライセンス︓ GPLv2 with additional permissions & 商⽤ライセンス• 開発体制︓ Oracle Corporation, MySQL Global Business Unit
• コミュニティ• 世界各地にユーザーグループが存在• 公式Facebook (https://www.facebook.com/mysql) フォロワー 50万⼈超• 公式Twitter (https://twitter.com/mysql) フォロワー 17万⼈超• ⽇本MySQLユーザ会 (http://www.mysql.gr.jp) メーリングリスト会員3,000⼈(?)• 公式⽇本語Twitter (https://twitter.com/mysql_jp) フォロワー 2,000⼈超• Slack MySQL Casual Talks Channel (mysql-casual.slack.com)

3

Copyright © 2021, Oracle and/or its affiliates

MySQLの歴史
1995

2000

2005

MySQL
1.0-3.22以前

ストレージエンジン (ISAM, HEAP)
マルチスレッド
Windows対応/64bit対応
⽇本語⽂字コード (SJIS/UJIS)

2010

Sun

3.23

4.1

MyISAM
InnoDB
レプリケーション

Unicode対応
サブクエリ
CSV, ARCHIVE
ndbcluster

4.0

全⽂検索/GIS (MyISAM)
複数テーブルUPDATE/DELETE
組み込みライブラリ型サーバ

5.0

5.1

プラグガブル・ストレージエンジン・アーキテクチャ
パーティショニング
タスクスケジューラ

Copyright © 2021, Oracle and/or its affiliates

Oracle5.6

memcached API
UNDO表領域
Global Transaction ID
マルチスレッドスレーブ(DB)オンラインALTER TABLE
トランスポータブル表領域

5.5

InnoDBがデフォルトに
準同期型レプリケーション
PERFORMANCE_SCHEMA

ストアドプロシージャ
ストアドファンクション
カーソル/トリガ/ビュー
XAトランザクション
INFORMATION_SCHEMA
4

2015

5.7

8.0

データディクショナリ
デフォルト⽂字コード utf8mb4
ドキュメントストア
不可視インデックス
セキュリティROLE
共通テーブル式
Window関数
CHECK制約
Cloneプラグイン

新コストモデル オプティマイザ
ロスレス レプリケーション
マルチソース レプリケーション
グループ レプリケーション
マルチスレッドスレーブ
全⽂検索CJK対応/GIS (InnoDB)
セキュリティ強化 (ｺﾝﾌﾟﾗｲｱﾝｽ対応)
NoSQLオプション (JSON)MySQLの主な機能/特徴• ストレージエンジン• レプリケーション• マルチスレッド• Unicode/UCA対応• XAトランザクション• インメモリデータベース• ユーザー定義関数

5Copyright © 2021, Oracle and/or its affiliates• 全⽂検索• 透過的データ暗号化• オンラインALTER TABLE• 可搬表領域• JSONデータ型• CRUD NoSQL API• memcached API• ストアドルーチン• ストアドファンクション• ビュー• トリガー• タスクスケジューラ• パーティショニングMySQL 8.0新機能• データディクショナリ• 共通テーブル式 (CTEs)• Window 関数• ロール• 透過的データ暗号化• ヒストグラム• 降順インデックス

6

Copyright © 2021, Oracle and/or its affiliates• ドキュメントストア• マルチマスター
レプリケーション• 不可視インデックス• リソースグループ• ロックオプション• パスワード再利⽤ポリシー• インスタントADD COLUMN• LATERAL句• バイナリログ暗号化• CHECK制約• CLONEプラグイン• JSONスキーマ検証• Hash JOIN
• VALUES⽂• ReplicaSet

MySQL 8.0新機能 – GAリリース後に追加された新機能• データディクショナリ• 共通テーブル式 (CTEs)• Window 関数• ロール• 透過的データ暗号化• ヒストグラム• 降順インデックス

7Copyright © 2021, Oracle and/or its affiliates• ドキュメントストア• マルチマスター
レプリケーション• 不可視インデックス• リソースグループ• ロックオプション• パスワード再利⽤
ポリシー• インスタントADD COLUMN• LATERAL句• バイナリログ暗号化• CHECK制約• CLONEプラグイン• JSONスキーマ検証• Hash JOIN
• VALUES⽂• ReplicaSet• 不可視列• クエリ属性MySQL Powers the Web

GREE Visual Identity System Guidelines For Vendors

基本タイプ

ネガタイプ

ver.1.0※背景色に関しては次ページを参照してください

ブランドカラー

8

Copyright © 2021, Oracle and/or its affiliates
ロゴカラー

ベースカラー

サブカラー

MySQL Powers the Web & Game – WebやゲームにおけるMySQL導⼊事例㕂ⰻ✲⢽• ‫ؙؑؐأ‬،٥ؒ‫أؙحص‬https://www.mysql.com/jp/customers/view/?id=1367

嵲㢩✲⢽• Facebook

https://www.mysql.com/jp/customers/view/?id=757• LINE• Booking.com• ًٕؕٔ

• Uber

https://www.mysql.com/jp/customers/view/?id=1327
https://www.mysql.com/jp/customers/view/?id=1428• ‫ُءحٍؗزحؽ‬https://www.mysql.com/jp/customers/view/?id=1419

https://www.mysql.com/jp/customers/view/?id=901
https://www.mysql.com/jp/customers/view/?id=1269• Spotify

https://www.mysql.com/jp/customers/view/?id=1285• َ‫؝ٖو‬• Airbnb• 麓⿠‫ك؎ך‬ٝ‫✲ךדز‬⢽闌怴项俱‫וז‬• MySQL㼪Ⰵ✲⢽https://www.mysql.com/jp/customers/view/?id=1430

https://www.mysql.com/jp/news-andevents/seminar/downloads.html

9

Copyright © 2021, Oracle and/or its affiliates

https://www.mysql.com/jp/customers/view/?id=1271

https://www.mysql.com/jp/customers/

MySQLのバージョン表記

メジャーバージョン

マイナーバージョン

リリースシリーズ内のバージョン

8.0.23

10

Copyright © 2021, Oracle and/or its affiliates

MySQLのダウンロード先MySQL Developer Zone (http://dev.mysql.com/)• MySQL Server Community Edition/MySQL Cluster Community Edition等、Community Editionの製品をダウンロード可能• GAだけでなく、DMR(開発途上版)、RC(リリース候補版)もダウンロード可能• 過去バージョンもダウンロード可能

11

Copyright © 2021, Oracle and/or its affiliates

Webシステムの例

コネクタを使ってTCP/IPで接続

MySQLサーバー(mysqld)

12

Copyright © 2021, Oracle and/or its affiliates

Webサーバー/APサーバー

クライアントWebシステムの例 – MySQLのレプリケーション機能を活⽤した負荷分散

更新処理
INSERT/UPDATE/DELETE

レプリケーションでのデータの複製

Webサーバー/APサーバー
参照処理の負荷分散
SELECT

13

Copyright © 2021, Oracle and/or its affiliates

クライアントMySQLサーバーのアーキテクチャ

ストレージエンジン・アーキテクチャー

2層構造のアーキテクチャ

MySQLサーバプロセスネットワーク接続、ユーザ認証 & 権限管理
SQL構⽂解析 & 実⾏計画最適化「接続からSQL実⾏までの共通部分」

handlerクラス

InnoDBMyISAM

MEMORY

CSV

Archive

ストレージエンジン

14

Copyright © 2021, Oracle and/or its affiliates

ndbcluster「ストレージエンジン」

MySQLサーバーのアーキテクチャ

接続からSQL実⾏までの共通部分接続からSQL実⾏までの共通部分

MySQLサーバプロセス
ネットワーク接続、ユーザ認証 & 権限管理

• アプリケーションからの接続受付• ユーザ認証や権限管理

SQL構⽂解析 & 実⾏計画最適化• 最適化(オプティマイザー)

handlerクラス

InnoDBMyISAM

MEMORYCSV• handlerクラスで抽象化された関数経由で処理実⾏

Archive

ストレージエンジン

15

Copyright © 2021, Oracle and/or its affiliates• SQL⽂の構⽂解析(パーサー)

ndbcluster

MySQLサーバーのアーキテクチャ

ストレージエンジン

ストレージエンジン

MySQLサーバプロセスネットワーク接続、ユーザ認証 & 権限管理
SQL構⽂解析 & 実⾏計画最適化

MySQLのアーキテクチャ上の最⼤の特徴• データ保管︓どこに格納するか、データレイアウト• インデックス︓実装アルゴリズム (Btree, B+, T etc)
• メモリ利⽤︓データキャッシュ、バッファリング

handlerクラス• トランザクション︓分離レベル、MVCC、など• 同時実⾏性︓ロック、排他制御

InnoDBMyISAM

MEMORY

CSV

Archive

ストレージエンジン

16

Copyright © 2021, Oracle and/or its affiliates

ndbcluster• 独⾃機能︓InnoDBの空間情報インデックスなど

代表的なストレージエンジン

ストレージエンジン

特徴/⽤途

InnoDBMySQL 5.5からのデフォルト、トランザクション対応、外部キー、圧縮

MyISAM以前のデフォルト、トランザクション⾮対応、ファイルシステムの置き換え

MEMORY

⾼速ルックアップ、データ参照の頻度が⾼いアプリ向け

ARCHIVE

SELECTおよびINSERTのみ可能、圧縮、ロギングや監査など

NDBCLUSTER

⾮共有型Active-Activeクラスタ、トランザクション対応

CSV

SQLでフラットファイルデータ(CSVファイル)を参照

MERGE

MySQL 5.1 より前のパーティショニング的機能

FEDERATED

分散配置したデータに透過的にアクセス

EXAMPLE

エンジンを開発するためのベース

BLACKHOLE

書き込んだデータを全て飲み込む”/dev/null”的なエンジン

17

Copyright © 2021, Oracle and/or its affiliates代表的なストレージエンジン

ストレージエンジン

特徴/⽤途

InnoDBMySQL 5.5からのデフォルト、トランザクション対応、外部キー、圧縮

MyISAM以前のデフォルト、トランザクション⾮対応、ファイルシステムの置き換え

MEMORY

⾼速ルックアップ、データ参照の頻度が⾼いアプリ向け

ARCHIVE

SELECTおよびINSERTのみ可能、圧縮、ロギングや監査など

NDBCLUSTER

⾮共有型Active-Activeクラスタ、トランザクション対応

CSV

SQLでフラットファイルデータ(CSVファイル)を参照

MERGE

MySQL 5.1 より前のパーティショニング的機能

FEDERATED

分散配置したデータに透過的にアクセス

EXAMPLE

エンジンを開発するためのベース

BLACKHOLE

書き込んだデータを全て飲み込む”/dev/null”的なエンジン※特別な理由がない限り、デフォルトストレージエンジンであるInnoDBを使⽤する
18

Copyright © 2021, Oracle and/or its affiliates

Software Design 連載︓MySQLアーキテクチャの探究

2020年6⽉号から全6回 + MySQL Database Service特集2回

第1回 MySQLのアーキテクチャの全体像
19

Copyright © 2021, Oracle and/or its affiliates

第2回 InnoDBストレージエンジ
ンにおけるトランザクション

第3回 同時更新でデータに⽭盾を発⽣させないためのしくみ

MySQL InnoDB ReplicaSet と MySQL InnoDB Cluster
MySQL InnoDB ReplicaSet• ⾮同期レプリケーション、MySQL Router、MySQL Shellを組合わせた構成• 主に「参照処理の負荷分散」を⽬的に利⽤• MySQL Shellから簡単に環境を構築、管理可能

MySQL InnoDB Cluster• MySQLサーバー標準の「⾼可⽤性クラスタリング」構成• グループレプリケーション、MySQL Router、MySQL Shellを組合わせた⾼可⽤性構成• MySQL Shellから簡単に環境を構築、管理可能※MySQL Router︓MySQLサーバーへの接続を透過的にルーティングするミドルウェア※MySQL Shell︓新しいクライアントツール、MySQL InnoDB ClusterおよびReplicaSetを管理するための管理APIを搭載

20

Copyright © 2021, Oracle and/or its affiliates

.Z42-*OOP%#3FQMJDB4FU ‫ ה‬.Z42-*OOP%#$MVTUFSMySQL InnoDB ReplicaSet
21

Copyright © 2021, Oracle and/or its affiliates

MySQL InnoDB Cluster開発・管理のためのインタフェース

22① 多⾔語をサポート
・JavaScript・Python・SQL③ MySQLユーティリティ
・アップグレードチェッカー
・JSONインポート
・⾼速データロード② 実⾏形式を選択可能
・バッチ・インタラクティブ④ 統合されたAPI・ドキュメントストア操作
・InnoDBクラスタ管理

Copyright © 2021, Oracle and/or its affiliates‫آؖوزفؙٔإٔؑء‬ٝ 7PMַ‫׵‬

世界で(たぶん)唯⼀のMySQL ShellやX DevAPIに関する連載
売り切れ

第1回: MySQL Shell概要

第2回: MySQL Shellの運⽤ユーティリティ

第4回: X Dev API
Python編

第5回: InnoDB Cluster

第3回: X Dev API
JavaScript編

第6回: InnoDB ReplicaSet

バックナンバー販売中 https://shell-mag.com/category/back-number/
27

Copyright © 2021, Oracle and/or its affiliates

28

Copyright © 2021, Oracle and/or its affiliates

MySQLをクラウド上で使うには29

MySQL Database ServiceHeatWave analyticsengine

Oracle Cloud
Infrastructure• コンピュートインスタンス• マーケットプレースからMySQLセットアップ

MySQL on Docker• Dockerイメージ利⽤• Kubernetesによる運⽤管理

OCI以外のクラウドプラットフォーム• IaaSにMySQLをインストール(BYOL)

Copyright © 2021, Oracle and/or its affiliates

MySQL Database Service & HeatWave analytics engine

世界で最も普及しているオープンソースデータベースをクラウドでCopyright © 2021, Oracle and/or its affiliates

開発元が提供オラクルのMySQLチームが100%開発、運⽤、サポート

分析処理の⾼速化

HeatWaveにより⾼速な更新処理と分析処理を単⼀DBで実現

100%互換オンプレミスのMySQLと完全互換ロックインの⼼配不要OSSコンソーシアム データベース部会の公開資料「OSC2020Online秋」
よりダウンロード可能

https://www.osscons.jp/database/ダウンロード/#_954

クラウドベンダーにデータをロックインされない
MySQLのクラウドデータベースの選択
企業ITのクラウドマイグレーションとOSSの役割
梶⼭ 隆輔 / KAJIYAMA, Ryusuke
MySQL Solution Engineering Director, Asia Pacific & JapanMySQL Global Business Unit
Oracle Groundbreakers Advocate - MySQL

31

Copyright © 2021, Oracle and/or its affiliates?
32

Copyright © 2021, Oracle and/or its affiliates

MySQLの最新情報配信

MySQLホームページ
http://www.mysql.com/jp
MySQL イベント
http://www.mysql.com/jp/news-and-events/
MySQLニュースレター（⽉刊）https://www.mysql.com/jp/news-and-events/newsletter/
MySQL Twitter@mysql_jp
33

Copyright © 2021, Oracle and/or its affiliates⽇本MySQLユーザー会(MyNA)
主な活動︓ メーリングリストでの情報交換やイベント開催
MySQLに興味がある⽅であればどなたでも⼊会(メーリングリスト参加)可能• 会費無し、退会も⾃由
URL︓ http://www.mysql.gr.jp/

34

Copyright © 2021, Oracle and/or its affiliates

MySQLの⽇本語リファレンスマニュアル
MySQL Developer Zone(http://dev.mysql.com/)にドキュメント類が公開されている
以下のドキュメントは2015年6⽉に⽇本語版が公開された• MySQL 5.6 リファレンスマニュアル (含むMySQL Cluster 7.3-7.4マニュアル)
http://dev.mysql.com/doc/refman/5.6/ja/index.html• MySQL Enterprise Monitor 3.0.18 マニュアル
http://dev.mysql.com/doc/mysql-monitor/3.0/ja/index.html• MySQL Enterprise Backup ユーザーズガイド (バージョン 3.11.1)
http://dev.mysql.com/doc/mysql-enterprise-backup/3.11/ja/index.html
上記⽇本語版公開以降に英語版リファレンスマニュアルのみ修正されている内容もあるため、⽇本語版リファレンスマニュアル参照時は英語版も合わせてご参照下さい(URLの”ja”部分を”en”に変更すると、英語版が表⽰可能)

35

Copyright © 2021, Oracle and/or its affiliates

今後のMySQL Webセミナーについて
MySQLのWebサイトよりチェック︕
https://www.mysql.com/jp/news-and-events/web-seminars/

36

Copyright © 2021, Oracle and/or its affiliates