SlideShare a Scribd company logo
1 of 65
Download to read offline
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Ryusuke	
  Kajiyama	
  /	
  梶山隆輔	
  /	
  @RKajiyama	
  
MySQL	
  Sales	
  ConsulIng	
  Senior	
  Manager,	
  Asia	
  Pacific	
  &	
  Japan	
  
The	
  State	
  of	
  the	
  Dolphin
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
以下の事項は、弊社の⼀一般的な製品の⽅方向性に関する概要を説明するものです。
また、情報提供を唯⼀一の⽬目的とするものであり、いかなる契約にも組み込むことはできません。
以下の事項は、マテリアルやコード、機能を提供することをコミットメントするものではない為
、購買決定を⾏行行う際の判断材料料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、
弊社の裁量量により決定されます。
SAFE	
  HARBOR	
  STATEMENT	
  
5	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
The	
  world's	
  most	
  popular	
  open	
  source	
  database	
  
世界で最も普及しているオープンソース データベース	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
	
  A	
  Year	
  of	
  Anniversaries!	
  
20	
  Years:	
  MySQL	
  
10	
  Years:	
  Oracle	
  stewardship	
  of	
  InnoDB	
  
	
  5	
  Years:	
  Oracle	
  stewardship	
  of	
  MySQL	
  
	
  
Thank	
  You,	
  MySQL	
  Community,	
  for	
  20	
  years	
  of	
  
ContribuIons	
  to	
  MySQL!	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Key	
  announcements	
  in	
  Jan-­‐Apr	
  2015	
MySQL	
  Cluster	
  7.4	
  GA	
  
•  200	
  Million	
  NoSQL	
  Reads/
Sec	
  
•  2.5M	
  SQL	
  Ops/Sec	
  
•  50%	
  Faster	
  Reads	
  
•  40%	
  Faster	
  Mixed	
  
•  5X	
  Faster	
  Maintenance	
  
Ops	
  
MySQL	
  Enterprise	
  
Firewall	
  
•  Real	
  Time	
  ProtecIon	
  
•  Blocks	
  SQL	
  InjecIon	
  
Acacks	
  
•  Block	
  Suspicious	
  Traffic	
  
•  Learns	
  White	
  List	
  	
  
•  Transparent	
  
MySQL	
  5.7	
  RC	
  
	
  
•  2	
  X	
  Faster	
  than	
  MySQL	
  5.6	
  
•  New	
  OpImizer	
  Cost	
  
Model	
  
•  ReplicaIon	
  
Improvements	
  
•  InnoDB	
  FTS	
  CJK	
  Support	
  
8
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   9	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  MySQL製品のシンプルで便利なインス
トール&アップグレード方法を提供	
  
•  下記のディストリビューション向け	
  
–  Oracle,	
  Red	
  Hat,	
  CentOS	
  	
  
–  Fedora	
  
–  Ubuntu,	
  Debian	
  
•  まもなく提供開始予定	
  
–  SUSE	
  
–  構成済みコンテナ	
  
–  利用者の多いDevOpsデプロイツールのサ
ポート	
  
•  下記の最新リリースを含む	
  
–  MySQL	
  Database	
  
–  MySQL	
  Workbench	
  
–  MySQL	
  Connector/ODBC	
  
–  MySQL	
  Connector/Python	
  
–  MySQL	
  Connector/NET	
  
–  MySQL	
  UIliIes	
  
	
  
	
  
10	
  
MySQLコミュニティレポジトリ:	
  Yum,	
  APT,	
  NuGET	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
GitHubへのMySQLソースコードの掲載	
  
•  MySQL開発チームのGit	
  
–  各ディストリビューションにてより迅速、柔軟に	
  
–  優れたツールの利用が可能に	
  
–  幅広くいコミュニティとの交流	
  
•  GitHub	
  for	
  MySQL	
  Community	
  
–  コミュニティや関連プロジェクトへのより簡単かつ高速なソースコードの提供	
  
–  ベータ版のレポジトリ: hcps://github.com/mysql	
  
–  詳細:	
  hcp://mysqlrelease.com	
  
11	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.6	
  リファレンスマニュアル日本語版	
hAp://dev.mysql.com/doc/refman/5.6/ja/index.html	
12
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Enterprise	
  EdiIon	
13
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Enterprise	
  Backup	
  
• オンラインバックアップ/リカバリ	
  
• クラウドストレージへバックアップ	
• 差分バックパック	
  &	
  ポイントイン
タイムリカバリ	
  
MySQL	
  Enterprise	
  Security	
  
• 外部認証との統合 (PAM,	
  
Windows,	
  LDAP,	
  etc.)	
  
• MySQL	
  Enterprise	
  Monitorで
のセキュリティアドバイザ	
MySQL	
  Enterprise	
  EncrypNon	
  
• AES256による対称暗号	
  
• 公開鍵方式 /	
  非対称暗号	
  
• 暗号学的ハッシュによる電子署
名、照合および妥当性確認	
  
MySQL	
  Enterprise	
  Audit	
  
• 接続、ログインおよびSQL実行
の記録	
  
• ポリシーベースのフィルタリン
グおよびログ切り替え	
  
• オラクルの監査仕様に準拠し
たXMLベースの出力	
  
MySQL	
  Enterprise	
  EdiIonによるデータ保護
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Enterprise	
  Firewall	
  
•  SQL	
  InjecIon	
  ProtecIon	
  with	
  PosiIve	
  Security	
  Model	
  
•  Out	
  of	
  policy	
  database	
  transacIons	
  detected	
  and	
  blocked	
  
•  Logging	
  &	
  Analysis	
  
Select *.* from employee where id=22!
Select *.* from employee where id=22 or 1=1!
Block	
  &	
  Log	
  ✖ 	
  
Allow	
  &	
  Log	
  ✔	
  
White	
  List	
  ApplicaNons	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Enterprise	
  Firewall	
  Details	
  
•  Firewall	
  operaIon	
  is	
  turned	
  on	
  at	
  a	
  per	
  user	
  level	
  
•  Per	
  User	
  States	
  are	
  	
  
– RECORDING	
  
– PROTECTING	
  
– OFF	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
What	
  happens	
  when	
  SQL	
  is	
  blocked?	
  
•  The	
  client	
  applicaIon	
  gets	
  an	
  ERROR	
  
mysql> SELECT first_name, last_name FROM customer WHERE customer_id = 1 OR TRUE;
ERROR 1045 (28000): Statement was blocked by Firewall
mysql> SHOW DATABASES;
ERROR 1045 (28000): Statement was blocked by Firewall
mysql> TRUNCATE TABLE mysql.user;
ERROR 1045 (28000): Statement was blocked by Firewall	
  
•  Reported	
  to	
  the	
  Error	
  Log	
  
•  Increment	
  Counter	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  7.4	
  GA	
18
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster:	
  SQL	
  and	
  NoSQL	
  Hybrid	
  APIs	
MySQL	
  Cluster	
  Data	
  Nodes	
  
Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
 Apps	
JPA	
Cluster	
  JPA	
PHP	
 Perl	
 Python	
 Ruby	
 JDBC	
 Cluster	
  J	
 JS	
 Apache	
 Memcached	
MySQL	
 JNI	
 Node.JS	
 mod_nd
b	
ndb_eng	
NDB	
  API	
  (C++)
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Cluster	
  7.4	
  GA	
  
•  200	
  Million	
  NoSQL	
  
Reads/Sec	
  
•  2.5M	
  SQL	
  Ops/Sec	
  
•  50%	
  Faster	
  Reads	
  
•  40%	
  Faster	
  Mixed	
  
Performance	
  
•  AcIve-­‐AcIve	
  
Geographic	
  
Redundancy	
  
•  Conflict	
  DetecIon/
ResoluIon	
  
AcIve-­‐AcIve	
  
•  5X	
  Faster	
  
Maintenance	
  Ops	
  
•  Detailed	
  ReporIng	
  
Management	
  
9th	
  April	
  2015	
   Copyright	
  2015,	
  oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
   20	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Memory	
  opImized	
  tables	
  
– Durable	
  
– Mix	
  with	
  disk-­‐based	
  tables	
  
•  Massively	
  concurrent	
  OLTP	
  
•  Distributed	
  Joins	
  for	
  analyIcs	
  
•  Parallel	
  table	
  scans	
  for	
  non-­‐indexed	
  
searches	
  
•  MySQL	
  Cluster	
  7.4	
  FlexAsych	
  
– 200M	
  NoSQL	
  Reads/Second	
  
9th	
  April	
  2015	
   21	
  
MySQL	
  Cluster	
  7.4	
  NoSQL	
  Performance	
  
200	
  Million	
  NoSQL	
  Reads/Second	
  
Copyright	
  2015,	
  oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  
!"!!!!
!50,000,000!!
!100,000,000!!
!150,000,000!!
!200,000,000!!
!250,000,000!!
2! 4! 6! 8! 10! 12! 14! 16! 18! 20! 22! 24! 26! 28! 30! 32!
Reads&per&second&
Data&Nodes&
FlexAsync&Reads&
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Memory	
  opImized	
  tables	
  
– Durable	
  
– Mix	
  with	
  disk-­‐based	
  tables	
  
•  Massively	
  concurrent	
  OLTP	
  
•  Distributed	
  Joins	
  for	
  analyIcs	
  
•  Parallel	
  table	
  scans	
  for	
  non-­‐indexed	
  
searches	
  
•  MySQL	
  Cluster	
  7.4	
  DBT2	
  BM	
  
– 2.5M	
  SQL	
  Statements/Second	
  
9th	
  April	
  2015	
   22	
  
MySQL	
  Cluster	
  7.4	
  SQL	
  Performance	
  
2.5M	
  SQL	
  Statements/Second	
  
Copyright	
  2015,	
  oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  
!"!!!!
!500,000!!
!1,000,000!!
!1,500,000!!
!2,000,000!!
!2,500,000!!
!3,000,000!!
2! 4! 6! 8! 10! 12! 14! 16!
SQL$Statements/sec$
Data$Nodes$
DBT2$SQL$Statements$per$Second$
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  製品ロードマップ	
  
	
  
	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   24	
4.0	
  
全文検索/GIS	
  (MyISAM)	
  
複数テーブルUPDATE/DELETE	
  
組み込みライブラリ型サーバ	
Oracle	
  MySQL	
   Sun	
  
3.23	
  
MyISAM	
  
InnoDB	
  
レプリケーション	
  
5.1	
  
プラグガブル・	
  
	
  ストレージエンジン・	
  
	
  アーキテクチャ	
パーティショニング	
  
タスクスケジューラ	
5.6	
  
memcached	
  API	
  
UNDO表領域	
  
Global	
  TransacIon	
  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.	
  	
  |	
  
•  性能	
  
– ミューテックスの分割	
  
– 参照専用トランザクション	
  
– SSDへの最適化	
  
– UNDO表領域	
  
– サブクエリ高速化	
  
– JSON	
  EXPLAIN	
  
– Memcached	
  API	
  
•  可用性	
– Global	
  TransacIon	
  ID	
  
– 自動フェールオーバー	
  
– マルチスレッド・スレーブ	
  
– Binlog	
  グループ・コミット	
  
– 行ベース・レプリケーショ
ン最適化	
  
– クラッシュセーフ・	
  
スレーブ	
  
– チェックサム	
25	
•  運用効率	
  
– オンラインALTER	
  TABLE	
  
– バッファプールのダンプ	
  
およびインポート	
  
– トランスポータブル	
  
表領域	
  
– セキュリティ強化	
  
•  パスワードポリシー	
  
•  SHA256	
  
•  パスワード失効	
  
MySQL5.6での機能拡張
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7	
  RC	
26
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7	
  Release	
  Candidate	
  Available!	
  
27	
  
InnoDBの機能拡張:	
  	
  
Online&Bulk	
  load	
  オペレーション高速化	
  
レプリケーションの改善	
  
	
  (mulI-­‐source,	
  mulI-­‐threaded	
  slaves等)	
  
新しいオプティマイザコストモデル:	
  
greater	
  user	
  control	
  &	
  becer	
  query	
  performance	
  
Performance	
  Schema改善	
  
MySQL	
  SYS	
  Schema改善	
  
パフォーマンス	
  &	
  拡張性	
   管理性	
  
MySQL	
  5.6比2倍の速度	
  
セキュリティの向上:	
  	
  
より安全な初期化,	
  セットアップ&管理	
  
NEW!	
  JSONのSupport	
  (now	
  in	
  labs)	
  
RC	
  
And	
  many	
  more	
  new	
  features	
  and	
  enhancements...	
  hcp://mysqlserverteam.com/the-­‐mysql-­‐5-­‐7-­‐7-­‐release-­‐candidate-­‐is-­‐available/	
  	
  
Copyright	
  ©	
  2015	
  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	
  
Queries	
  per	
  Second	
  
ConnecNons	
  
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	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  2x	
  Faster	
  than	
  MySQL	
  5.6	
  
	
   	
   	
   	
  3x	
  Faster	
  than	
  MySQL	
  5.5	
  
645,000	
  QPS	
  
28	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  オプティマイザ	
  –	
  新コストモデル	
  	
  
	
  
SQL文の実行性能を向上	
  
	
  
•  新しいコストモデルによりストレージエンジンでの処理を改善	
  
– 	
  より正確で動的なコスト見積もり	
  
– 	
  キーの参照、テーブルスキャン、レンジスキャン、インデックススキャンなど	
  
•  様々な追加要素にてコストを設定可能	
  
– ディスクI/O処理性能	
  
– メモリ処理性能	
  
•  インデックスからレコードへの参照の見積もり改善	
  
•  コストの値はEXPLAINのJSON出力に含まれる	
  
	
  
29	
  
labs.mysql.com	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  OpImizer	
  -­‐	
  JSON	
  EXPLAINへのコスト情報追加	
  
	
  
•  JSON	
  EXPLAINを拡張	
  
– 出力可能なコスト情報を全て表示	
  
– MySQL	
  WorkbenchのVisual	
  Explainにも表示	
  
30	
  
{
"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.	
  	
  |	
  
InnoDB	
  -­‐	
  General	
  Tablespace	
  Support	
31	
A	
  general	
  tablespace	
  is	
  a	
  shared	
  tablespace,	
  similar	
  to	
  the	
  system	
  tablespace.	
  It	
  can	
  hold	
  mulIple	
  tables,	
  and	
  supports	
  all	
  
table	
  row	
  formats.	
  General	
  tablespaces	
  can	
  also	
  be	
  created	
  in	
  a	
  locaIon	
  relaIve	
  to	
  or	
  independent	
  of	
  the	
  data	
  directory.	
  	
[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=u•8mb4;	
  
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=u•8mb4	
  	
  
>	
  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.	
  	
  |	
  
InnoDB	
  -­‐	
  	
  Temporary	
  Tables	
  
•  一時テーブル専用の表領域を新規追加	
  
– CREATE/DROPのパフォーマンスを改善	
  
– DDLによる変更が短縮され,一部ディスクI/Oも削減	
  
•  DMLオペレーションの最適化	
  
– No	
  REDO	
  logging,	
  no	
  change	
  buffering,	
  less	
  locking	
  
•  内部的な新たなテンポラリーテーブル	
  
– ACID/MVCCに対応した専用の一時テーブル	
  
– 軽量且つ超高速で、中間のクエリの実行操作に最適	
  
32	
  
参照:14.11	
  InnoDB	
  Startup	
  OpNons	
  and	
  System	
  Variables	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
クエリ・リライト・プラグイン
•  クエリの書き換え	
  (パースの前と後)	
  	
  
•  パースした後での書き換えプラグイン	
  
– アプリケーションを変更することなく問題のあるクエリを書き換
え	
  
– ヒントの追加	
  
– JOIN順の変更	
  
•  ORマッパーやサードパーティ製のアプリなどが発行する	
  
問題となり得るクエリなどに対応	
  
33	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Generated	
  Column	
  Support	
  
35	
  
CREATE	
  TABLE	
  T_Generated_Column	
  (	
  
>	
  pid	
  int(10)	
  unsigned	
  NOT	
  NULL	
  AUTO_INCREMENT,	
  
>	
  pname	
  varchar(1024)	
  DEFAULT	
  NULL,	
  
>	
  price	
  decimal(10,2),qty	
  	
  	
  int(10),	
  	
  
>	
  total	
  decimal(10,2)	
  GENERATED	
  ALWAYS	
  AS	
  (price	
  *	
  qty)	
  
STORED,	
  
>	
  PRIMARY	
  KEY	
  (pid)	
  
>	
  )	
  ENGINE=InnoDB	
  DEFAULT	
  CHARSET=u•8mb4;	
  	
  
Query	
  OK,	
  0	
  rows	
  affected	
  (0.02	
  sec)	
  
式から生成される列(2種類)	
  
-­‐	
  VIRTUAL(default)	
  :	
  SELECT時に計算。データ保存されず,インデックスの作成不可	
  
-­‐	
  STORED:	
  	
  INSERT/UPDATE時に計算。データは保存され,インデックス作成可能	
  
Useful	
  for:	
  	
  
-­‐	
  FuncIonal	
  index:	
  create	
  a	
  stored	
  column,	
  add	
  a	
  secondary	
  index	
  
-­‐	
  Materialized	
  cache	
  for	
  complex	
  condiIons	
  	
  
-­‐	
  Simplify	
  query	
  expression	
  
<type>	
  	
  	
  [	
  GENERATED	
  ALWAYS	
  ]	
  	
  	
  AS	
  	
  	
  (	
  <expression>	
  )	
  	
  	
  [	
  VIRTUAL|STORED	
  ]	
  [	
  UNIQUE	
  [KEY]	
  ]	
  	
  	
  [	
  [PRIMARY]	
  KEY	
  ]	
  	
  	
  [	
  NOT	
  NULL	
  ]	
  	
  	
  [	
  COMMENT	
  <text>	
  ]	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Generated	
  Column	
  Support	
  
36	
  
Generated	
  Columnに対してIndex作成が可能なので、 	
  
Where句はindexを利用し最適なコストでデータを抽出可能	
  
参照: Generated	
  Columns	
  in	
  MySQL	
  5.7.5	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  -­‐	
  Full	
  Text	
  Search	
  (FTS)	
  -­‐	
  ngram	
37	
InnoDB	
  Full	
  Text	
  Search	
  (FTS)	
  にて 中国語,	
  韓国語,日本語をサポート	
  
N-­‐gram	
  support	
  for	
  Chinese	
  and	
  Korean,	
  addiIonal	
  MeCab	
  support	
  for	
  Japanese	
  
CREATE	
  TABLE	
  `N_DEMO`	
  (	
  `FTS_N_ID`	
  bigint(20)	
  unsigned	
  NOT	
  NULL	
  AUTO_INCREMENT,	
  `Itle`	
  varchar(100)	
  DEFAULT	
  NULL,	
  	
  	
  
PRIMARY	
  KEY	
  (`FTS_N_ID`),	
  FULLTEXT	
  KEY	
  `ngram_idx`	
  (`Itle`)	
  /*!50100	
  WITH	
  PARSER	
  `ngram`	
  */	
  	
  
)	
  ENGINE=InnoDB	
  AUTO_INCREMENT=1	
  DEFAULT	
  CHARSET=u•8mb4;	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  -­‐	
  Full	
  Text	
  Search	
  (FTS)	
  -­‐	
  mecab	
38	
InnoDB	
  Full	
  Text	
  Search	
  (FTS)	
  にて 中国語,	
  韓国語,日本語をサポート	
  
N-­‐gram	
  support	
  for	
  Chinese	
  and	
  Korean,	
  addiIonal	
  MeCab	
  support	
  for	
  Japanese	
  
CREATE	
  TABLE	
  `M_DEMO`	
  (	
  `FTS_M_ID`	
  bigint(20)	
  unsigned	
  NOT	
  NULL	
  AUTO_INCREMENT,	
  `Itle`	
  varchar(100)	
  DEFAULT	
  NULL,	
  	
  	
  
PRIMARY	
  KEY	
  (`FTS_M_ID`),	
  	
  FULLTEXT	
  KEY	
  `mecab_idx`	
  (`Itle`)	
  /*!50100	
  WITH	
  PARSER	
  `mecab`	
  */	
  	
  
)	
  ENGINE=InnoDB	
  AUTO_INCREMENT=1	
  DEFAULT	
  CHARSET=u•8mb4;	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7	
  RCにおける運用サポート機能	
  
•  Performance	
  Schema:	
  性能統計情報のさらなる追加	
  
•  オンライン処理においての機能拡張	
  
•  SYSLOGをLinux/Windows共にネイティブサーポート	
  
•  GIS機能をInnoDBの空間インデックスとBoost.Geometryの統合でサポート	
  
•  Security強化として,簡単で安全な初期設定と管理をサポート	
  
39	
  
•  ReplicaNon	
  for	
  becer	
  scalability	
  and	
  availability	
  
•  Fabric	
  for	
  high	
  availability	
  and	
  sharding	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  SYS	
  Schema	
  
DB管理者、開発者や運用担当者を支援	
  
•  DB管理者や運用担当者の作業効率を改善	
  
	
  -­‐	
  サーバの稼働状況、ユーザやホストの状況、主要な稼働指標	
  	
  	
  
	
  -­‐	
  性能問題の発見、分析および改善	
  
	
  
•  状況をより簡単に把握し理解するための複数のビュ
ー	
  
	
  -­‐	
  IO量の高いファイルや処理、ロック、コストの高いSQL文	
  	
  	
  
	
  -­‐	
  テーブル、インデックス、スキーマの統計	
  	
  	
  
•  他のデータベースにおけるSYS類似機能:	
  
-­‐  Oracle	
  V$表	
  	
  	
  	
  	
  (動的パフォーマンスビュー)	
  
-­‐  Microsoƒ	
  SQL	
  Server	
  DMV (Dynamic	
  Management	
  Views)	
   40	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
オンライン処理の拡張	
  
41	
  
• Resize	
  the	
  InnoDB	
  Buffer	
  Pool	
  online	
  	
  
–  オンラインでのバッファーサイズのチューニング	
  
–  データベースの使用パターンの変化にリアルタイムで適応	
  
• Separate	
  UNDO	
  tablespace	
  
–  自動オンラインUNDOログ切り捨て(MySQL	
  5.7.5∼)	
  
–  UNDOログファイルサイズの増加を回避する事が可能	
  
• Dynamic	
  configuraNon	
  
–  Making	
  exisIng	
  se„ngs	
  dynamically	
  configurable	
  
–  As	
  a	
  design	
  principle	
  for	
  new	
  features	
  &	
  se„ngs	
  
–  その他、幾つかのレプリケーションの設定変更等も	
  
  オンラインで変更可能になりました。	
  
参照:14.4.8	
  TruncaIng	
  Undo	
  Logs	
  That	
  Reside	
  in	
  Undo	
  Tablespaces	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  独自コードの置き換え	
  
– 空間図形情報の計算	
  
– 空間図形情報の分析	
  
•  OGC(Open	
  GeospaIal	
  ConsorIum)準拠	
  
– パフォーマンスの向上	
  
•  Boost.Geometryによる効果	
  
– エキスパートとの交流	
  
– 非常に活発なコミュニティ	
  
•  Boost.Geometryへのコントリビュートも	
  
MySQL	
  5.7:	
  GIS	
  -­‐	
  Boost.Geometryとの統合	
  
43	
  
例)ALTER	
  TABLE	
  テーブル名 add	
  SPATIAL	
  index(列名);
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7.7	
  セキュリティの強化
•  mysql_install_dbコマンド非推奨	
  
– mysqldの-­‐-­‐iniIalizeまたは-­‐-­‐iniIalize-­‐insecureオプションで初期化	
  
•  CREATE	
  USER文とALTER	
  USER文にオプション追加	
  
– SSL,	
  PASSWORD	
  EXPIRE,	
  ACCOUNT	
  [LOCK	
  |	
  UNLOCK]	
  
•  mysql.userテーブルのPassword列がauthenIcaIon_stringに変更に	
  
•  SET	
  PASSWORD文およびPASSWORD()関数が非推奨	
  
– ALTER	
  USER文での設定を推奨	
  
•  ENCRYPT,	
  DES_ENCRYPT,	
  DES_DECRYPT関数非推奨	
  AES推奨
ユーザ管理とセキュリティ
mysqld	
  -­‐-­‐iniIalize	
  -­‐-­‐user=mysql
mysql_install_db	
  -­‐-­‐user=mysql
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Security	
  -­‐	
  EncrypNon,	
  Passwords,	
  InstallaNon	
  
•  AES	
  256	
  EncrypIon	
  (Default	
  in	
  MySQL	
  5.7	
  )	
  
•  パスワードローテーションポリシー	
  
–  インスタンス全体、ユーザー単位で設定可能	
  
•  Deployment:	
  デフォルトで安全に無人インストールを行う事が可能	
  
–  インストール時にランダムなパスワードを設定/匿名のアカウントを削除	
  
–  テストアカウント,	
  スキーマ(test),	
  デモファイルは作成されなくなりました	
  
45	
  
 [	
  Global	
  ConfiguraNon	
  ]	
  
SET	
  GLOBAL	
  default_password_lifeIme	
  =	
  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.	
  	
  |	
  
MySQL	
  5.7におけるレプリケーションの機能拡張
• MulI-­‐Source	
  ReplicaIon	
  
• Performance	
  enhancement	
  of	
  MulI-­‐Thread	
  Slave	
  
• gId_mode	
  is	
  now	
  dynamic	
  
• Making	
  MySQL	
  Slave	
  ReplicaIon	
  Filters	
  Dynamic	
  
• Preparing	
  implementaIon	
  of	
  Group	
  ReplicaIon	
  [Labs]	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  複数のマスターでの変更点を1台 	
  
のスレーブに集約	
  
– 全てのシャードのデータを集約	
  
– より柔軟なレプリケーション構成	
  
– バックアップ処理を集約	
  
•  準同期レプリケーション&改良
版	
  
マルチスレッドスレーブ対応	
  
•  スレーブ側でのフィルタリング
が可能	
  
MySQL	
  5.7:	
  MulI-­‐Source	
  ReplicaIon	
  
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	
  
47	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   48	
MySQL	
  5.7:	
  MulI-­‐Source	
  ReplicaIon	
参照:	
  17.1.4.1	
  MySQL	
  MulN-­‐Source	
  ReplicaNon	
  Overview	
  
マルチソースレプリケーションには、競合
検知や	
  
解消する仕組みは組み込まれていないので、	
  
それぞれの送信元のデータが競合しないよ
うに	
  
アプリケーションの設計を行う必要があり
ます。	
  
例)	
  
-­‐	
   データベース分割	
  
-­‐	
   テーブルのシャーディング	
  
各チャネルごとにレプリケーショ
ンを構成	
  
Copyright	
  ©	
  2015	
  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	
  TransacNons	
  per	
  Second	
  
Baseline	
  
50	
  clients	
  
100	
  clients	
  
150	
  clients	
  
200	
  clients	
  
51	
  
-­‐-­‐slave-­‐parallel-­‐type	
  
	
  
1.	
  DATABASE	
  	
  :	
  (Default)	
  Use	
  the	
  db	
  parIIoned	
  MTS	
  (1	
  worker	
  per	
  database)	
  
2.	
  LOGICAL_CLOCK:	
  	
  Use	
  logical	
  clock	
  based	
  parallelizaIon	
  mode.	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   52	
マルチスレッドスレーブセットアップ手順	
ON	
  MASTER:	
  
1.	
  start	
  master	
  with	
  	
  
	
  	
  	
  	
  	
  -­‐-­‐binlog-­‐max-­‐flush-­‐queue-­‐Ime=0	
  
 	
  
ON	
  SLAVE:	
  
1.a.	
  Start	
  slave	
  server	
  with	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  -­‐-­‐slave-­‐parallel-­‐type=LOGICAL_CLOCK	
  -­‐-­‐slave-­‐parallel-­‐workers=N	
  
	
  
又は	
  
	
  
1.b	
  Start	
  the	
  slave	
  server	
  normally.	
  	
  
Change	
  the	
  MTS	
  opIons	
  dynamically	
  using	
  the	
  following	
  
mysql:	
  STOP	
  SLAVE:	
  -­‐-­‐if	
  the	
  slave	
  is	
  running	
  
mysql:	
  SET	
  GLOBAL	
  SLAVE_PARALLEL_TYPE='LOGICAL_CLOCK';	
  
mysql:	
  SET	
  GLOBAL	
  SLAVE_PARALLEL_WORKER=N;	
  
mysql:	
  START	
  SLAVE:	
※Default	
  値は0	
  
※Default	
  値はDATABASE	
  
※Default	
  値は0	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
54	
GTIDモード(gId_mode)レプリケーションへのオンライン移行	
参照:Enabling	
  Global	
  TransacNon	
  IdenNfiers	
  Without	
  DownNme	
  in	
  MySQL	
  5.7.6	
  
1.	
  Disable	
  all	
  write	
  operaIons.	
  
2.	
  Wait	
  for	
  all	
  transacIons	
  to	
  propagate	
  	
  
	
  	
  	
  	
  from	
  the	
  master(s)	
  to	
  all	
  slaves.	
  
3.	
  Stop	
  all	
  servers.	
  
4.	
  On	
  each	
  server,	
  set	
  gId-­‐mode=ON	
  in	
  the	
  configuraIon	
  
file.	
  
5.	
  Start	
  all	
  servers.	
  
6.	
  Enable	
  write	
  operaIons.	
  
It	
  is	
  sIll	
  possible	
  to	
  use	
  the	
  old,	
  offline	
  procedure.	
  	
  
The	
  procedure	
  is	
  as	
  follows:	
Offline	
  procedure	
  	
 Online	
  procedure	
  	
詳細:	
  17.1.5.2	
  Enabling	
  GTID	
  TransacIons	
  Online	
  
	
   17.1.5.4	
  Verifying	
  ReplicaIon	
  of	
  Anonymous	
  TransacIons	
  
1	
   SET	
  @@GLOBAL.ENFORCE_GTID_CONSISTENCY	
  =	
  WARN;	
2	
 SET	
  @@GLOBAL.ENFORCE_GTID_CONSISTENCY	
  =	
  ON;	
3	
 SET	
  @@GLOBAL.GTID_MODE	
  =	
  OFF_PERMISSIVE;	
4	
 SET	
  @@GLOBAL.GTID_MODE	
  =	
  ON_PERMISSIVE;	
5	
 SHOW	
  STATUS	
  LIKE	
  'ONGOING_ANONYMOUS_TRANSACTION_COUNT';	
6	
 SET	
  @@GLOBAL.GTID_MODE	
  =	
  ON;	
7	
 On	
  each	
  server,	
  add	
  gId-­‐mode=ON	
  to	
  my.cnf.	
  	
8	
STOP	
  SLAVE	
  ;	
  
CHANGE	
  MASTER	
  TO	
  MASTER_AUTO_POSITION	
  =	
  1;	
  
START	
  SLAVE;	
各サーバーで以下のコマンドを実行
MySQL	
  ReplicaIonの設定や運用を簡素化する為に、GTIDモードのレプリケーションを利用する方法がありますが、既にGTID
モード以前のレプリケーションで運用されている場合は、稼働中の全てのサーバーを停止してからGTIDモードのレプリケー
ションへ移行する必要がありました。しかし、稼働中のサービスを停止して切り替える事は難しいのが現実です。	
  
MySQL	
  5.7.6	
  以降のMySQLにアップグレードする事で、オンラインのままMySQLのレプリケーションを切り替える事が出来るよ
うになりました。	
  
5.6.x	
  
Standard	
  
ReplicaIon	
5.7.6~	
  
Standard	
  
ReplicaIon	
5.7.6 ~	
  
GTID	
  Mode	
  
ReplicaIon	
① ②
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  1.5:	
  高可用性	
  &	
  シャーディング	
  
•  OpenStack	
  との統合	
  
•  高可用性	
  
–  サーバの監視;	
  スレーブの自動昇格と透過
的なレプリケーション切り替え	
  
•  シャーディングによる拡張性	
  
–  アプリケーションがシャードのキーを提供	
  
•  整数型、日付型、文字列型	
  
–  レンジまたはハッシュ	
  
–  シャード再構成可能	
  
•  Fabric対応コネクタ利用:	
  Python,	
  Java,	
  
PHP,	
  .NET,	
  C	
  (labs)	
  
–  プロキシを使わないので低レイテンシ、	
  
ボトルネック無し	
  
MySQL	
  Fabric	
  
Connector	
  
ApplicaIon	
  
Read-­‐slaves	
  
mappings	
  
SQL	
  
HA	
  group	
  
Read-­‐slaves	
  
HA	
  group	
  
Connector	
  
ApplicaIon	
  
55	
  
GA	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   56	
MySQL	
  Slave	
  ReplicaIon	
  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以前は、ユーザーはOpIonファイル(my.cnf)か、コマンドラインパラメータを使用
してフィルタリングルールを設定することが出来ますが、いずれの場合もMySQLサーバはフィ
ルタリングルールの変更を反映する為に再起動する必要があります。
The	
  following	
  slave	
  replicaIon	
  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	
  ReplicaNon	
  Filters	
  Dynamic	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Labs	
57
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Labs	
•  先進的な機能や実験的な仕様のをいち早く公開	
  
– コミュニティからのフィードバックをいただく	
  
•  将来的にはMySQLサーバやMySQL	
  Cluster本体への統合を期待	
  
– MySQL	
  5.6	
  memcached	
  API	
  
– MySQL	
  Cluster	
  7.2	
  memcached	
  API	
  
– MySQL	
  5.6	
  Performance	
  Schema	
  
– MySQL	
  5.6	
  Intra-­‐schema	
  MulI	
  Thread	
  Slave	
  
– MySQL	
  5.6	
  Online	
  Alter	
  Table	
  
– MySQL	
  5.7	
  MulI	
  Source	
  ReplicaIon	
  
– MySQL	
  5.7	
  New	
  OpImizer	
  Cost	
  Model	
58
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  シェアード・ナッシング型”疑似”同期レプリケーション	
  
•  更新はマルチ・マスタ型でどこでも可能	
  
–  矛盾の検知と解決(トランザクションのロールバック	
  
–  “OpImisIc	
  State	
  Machine”	
  レプリケーション	
  
•  グループメンバーの管理と障害検知を自動化	
  
–  サーバのフェールオーバー不要	
  
–  構成の拡張/縮小の柔軟性	
  
–  単一障害点無し	
  
–  自動再構成	
  
•  既存構成との統合	
  
–  InnoDB	
  
–  GTIDベースのレプリケーション	
  
–  PERFORMANCE_SCHEMA	
  
MySQL	
  5.7:	
  グループレプリケーション	
  
ApplicaIon	
  
MySQL	
  Masters	
   ReplicaIon	
  	
  
Plugin	
  
API	
  
MySQL	
  
Server	
  
Group	
  Comms	
  
(Corosync)	
  
59	
  
labs.mysql.com	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Early	
  Access	
  Feature	
  (EAF):	
  Data	
  DicIonary	
  
Replacing	
  the	
  FRMs	
  
•  A	
  single	
  repository	
  for	
  database	
  object	
  metadata	
  
– InnoDB	
  tables	
  replace	
  .frm,	
  .trg,	
  .trn,	
  .par	
  files	
  
•  Atomic	
  	
  &	
  crash-­‐safe	
  operaIons	
  today	
  
– 	
  TransacIonal	
  in	
  the	
  future	
  
•  Makes	
  adding	
  new	
  features	
  much	
  easier	
  
•  Eliminates	
  complexity,	
  resolves	
  bugs	
  	
  
•  Improves	
  performance	
  	
  
•  Leverages	
  InnoDB	
  strengths	
  
	
  
60	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
HTTP	
  Plugin	
  for	
  MySQL	
  
•  MySQLサーバへのHTTP(S)エンドポイントを提供するプラグイン	
  
•  結果をUTF8でエンコードされたJSONフォーマットにシリアライズ	
  
•  3種類のユーザエンドポイント	
  
– SQL	
  
– CRUD	
  -­‐	
  Key-­‐Value	
  
– JSON	
  -­‐	
  Document	
  
•  For	
  more	
  details;	
  
hcp://www.slideshare.net/nixnutz/hcp-­‐plugin-­‐for-­‐mysql-­‐39598656	
  
61	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
HTTP	
  Plugin	
  for	
  MySQL	
The	
  SQL	
  endpoint	
  and	
  JSON	
  	
62	
shell> curl --user basic_auth_user:basic_auth_passwd
--url "http://127.0.0.1:8080/sql/db/SELECT+1”
[
{
"meta":[
{"type":8,"catalog":"def","database":"","table":"”,
"org_table":"","column":"1","org_column":"","charset":63,
"length":1,"flags":129,"decimals":0}
],
"data":[
["1"]
],
"status":[{"server_status":2,"warning_count":0}]
}
]
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
HTTP	
  Plugin	
  for	
  MySQL	
  -­‐	
  IniIal	
  version	
  
•  HTTP	
  Basic	
  AuthenIcaIon	
  for	
  SSL	
  and	
  Non-­‐SSL	
  	
  
•  No	
  query	
  cache	
  support	
  	
  
•  No	
  commercial	
  thread	
  pool	
  plugin	
  support	
  	
  
•  Not	
  all	
  MySQL	
  pluggable	
  auth	
  methods	
  supported	
  	
  
•  Unlimited:	
  all	
  SQL	
  statements	
  	
  
•  Unlimited:	
  everything	
  the	
  server	
  returns	
  	
  
63	
  
shell> curl --user basic_auth_user:basic_auth_passwd
--url "http://.../sql/db/SELECT+col_float+FROM+sql_types"
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Binlog	
  Events	
Formerly	
  known	
  as	
  Binlog	
  API	
•  C++	
  library	
  for	
  reading	
  Binary	
  log	
  
•  Can	
  read	
  binary	
  log	
  from	
  server	
  or	
  from	
  file	
  
– One	
  transport	
  for	
  each	
  kind	
  of	
  source	
  
– Currently	
  have	
  file	
  and	
  mysql	
  transport	
  
•  Decode	
  binary	
  log	
  events	
  
– Contain	
  code	
  to	
  decode	
  the	
  events	
  
•  Event	
  Driven	
  API	
  
64
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  JSON	
  
•  OpImized	
  for	
  read	
  intensive	
  workload	
  	
  
•  NaIve	
  JSON	
  data	
  types	
  
– NaIve	
  internal	
  binary	
  format	
  for	
  efficient	
  processing	
  &	
  storage	
  
•  Built-­‐in	
  JSON	
  funcIons	
  
– Allowing	
  you	
  to	
  efficiently	
  store,	
  search,	
  update,	
  and	
  manipulate	
  Documents	
  
•  JSON	
  Comparator	
  
– Allows	
  for	
  easy	
  integraIon	
  of	
  Document	
  data	
  within	
  your	
  SQL	
  queries	
  
•  Indexing	
  of	
  Documents	
  using	
  Generated	
  Columns	
  	
  
– InnoDB	
  supports	
  indexes	
  on	
  both	
  stored	
  and	
  virtual	
  Generated	
  Columns	
  
– New	
  expression	
  analyzer	
  automaIcally	
  uses	
  the	
  best	
  “funcIonal”	
  index	
  available	
  
6/6/15	
   Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  	
   65	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  JSON	
66	
mysql> CREATE TABLE employees (data JSON);
Query OK, 0 rows affected (0,01 sec)
mysql> INSERT INTO employees VALUES ('{"id": 1, "name": "Jane"}');
Query OK, 1 row affected (0,00 sec)
mysql> INSERT INTO employees VALUES ('{"id": 2, "name": "Joe"}');
Query OK, 1 row affected (0,00 sec)
mysql> select * from employees;
+---------------------------+
| data |
+---------------------------+
| {"id": 1, "name": "Jane"} |
| {"id": 2, "name": "Joe"} |
+---------------------------+
2 rows in set (0,00 sec)
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  JSON	
•  Document	
  ValidaIon	
  
– on	
  insert	
  only	
  	
  
•  Efficient	
  Access	
  
67	
mysql> INSERT INTO employees VALUES ('some random text');
ERROR 3130 (22032): Invalid JSON text: "Expect a value here." at position 0 in
value (or column) 'some random text'.	
mysql> select jsn_extract(data, '$.name') from employees;
+-----------------------------+
| jsn_extract(data, '$.name') |
+-----------------------------+
| "Jane" |
| "Joe" |
+-----------------------------+
2 rows in set (0,00 sec)
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  jsn_array()
–  Build	
  a	
  JSON	
  array	
  from	
  list	
  of	
  expressions	
  
•  jsn_object()
–  Builds	
  JSON	
  objects	
  from	
  a	
  variable	
  length	
  list	
  
of	
  key/value	
  pairs	
  
•  jsn_insert()
–  Adds	
  'missing'	
  data	
  to	
  JSON	
  documents	
  
•  jsn_remove()
–  Removes	
  acributes	
  from	
  exisIng	
  JSON	
  
documents	
  
•  jsn_set()
–  Sets	
  acributes	
  within	
  JSON	
  documents	
  
•  jsn_replace()
–  Replaces	
  (but	
  doesn't	
  add)	
  acributes	
  within	
  
JSON	
  documents	
  
•  jsn_append()
–  Adds	
  a	
  value	
  to	
  the	
  end	
  of	
  an	
  array	
  
•  jsn_merge()
–  Merges	
  two	
  arrays	
  	
  
•  jsn_extract()
–  Returns	
  a	
  value	
  nested	
  inside	
  of	
  a	
  JSON	
  
document	
  
6/6/15	
   68	
  
JSON	
  FuncIons	
  for	
  CreaIng	
  &	
  ManipulaIng	
  
	
  JSON	
  Documents	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  jsn_search()
–  Search	
  for	
  values	
  within	
  JSON	
  documents	
  and	
  
return	
  their	
  locaIons	
  
•  jsn_contains()
–  Checks	
  for	
  a	
  specific	
  element	
  and	
  value	
  
•  jsn_contains_path()
–  Determine	
  if	
  a	
  specific	
  element	
  is	
  present	
  in	
  a	
  
document	
  in	
  a	
  specific	
  posiIon	
  
•  jsn_valid()
–  Check	
  if	
  document	
  is	
  a	
  valid	
  JSON	
  document	
  
•  jsn_type()
–  Find	
  the	
  type	
  of	
  a	
  value	
  within	
  a	
  document	
  
•  jsn_keys()
–  Returns	
  arrays	
  of	
  the	
  key	
  names	
  for	
  the	
  JSON	
  
documents	
  
•  jsn_length()
–  Number	
  of	
  elements	
  in	
  JSON	
  document	
  
•  jsn_depth()
–  Level	
  of	
  nesIng	
  in	
  JSON	
  document	
  
•  jsn_unquote()
–  Helps	
  move	
  from	
  JSON	
  to	
  other	
  MySQL	
  types	
  
•  jsn_quote()
–  Helps	
  move	
  from	
  other	
  MySQL	
  types	
  to	
  JSON	
  
6/6/15	
   69	
  
Query	
  and	
  Search	
  JSON	
  FuncIons	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Generated	
  Columns	
  
•  Virtual	
  Generated	
  Column	
  
– Generated	
  on	
  the	
  fly	
  when	
  the	
  column	
  is	
  read	
  
– Can	
  be	
  indexed	
  
•  Stored	
  Generated	
  Column	
  
– Generated	
  when	
  the	
  referenced	
  column	
  is	
  wricen	
  to	
  
– Can	
  be	
  indexed	
  
mysql> ALTER TABLE employees ADD name VARCHAR(100)
GENERATED ALWAYS AS(jsn_extract(info, '$.name')) VIRTUAL;
mysql> ALTER TABLE employees ADD INDEX(name);
hcp://mysqlserverteam.com/	
  
70	
  
Digging	
  into	
  your	
  Documents	
  
labs.mysql.com	
  
6/6/15	
   Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Save	
  memory/storage	
  and	
  simplify	
  
applicaIon	
  
– Joins	
  between	
  Documents	
  
•  Normalize	
  data	
  where	
  it	
  makes	
  sense	
  
– Foreign	
  Keys	
  between	
  Documents	
  
– Update	
  mulIple	
  Documents	
  in	
  a	
  single	
  
atomic	
  transacIon	
  
•  Leverage	
  all	
  of	
  your	
  data	
  
– Read/write	
  Document	
  and	
  relaIonal	
  
data	
  in	
  a	
  single	
  query/transacIon	
  
•  20	
  years	
  of	
  product	
  maturity	
  
6/6/15	
   71	
  
So	
  Just	
  Another	
  Document	
  Store?	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved	
  	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
5.6	
  
MySQL	
  Server	
  –	
  GA	
  
InnoDBの改良やオプティマイザの刷新による性能&拡張性向上	
  
レプリケーションの可用性向上	
  &	
  NoSQLインタフェース追加	
  
MySQL	
  Cluster	
  -­‐	
  GA	
  
秒間2億件のNoSQL処理、秒間200万件のSQL処理	
  
リカバリや再起動時間の短縮	
  
7.4	
  
5.7	
  
MySQL	
  Server	
  –	
  RC	
  
リファクタリング	
  &	
  各機能のプラグイン化による性能と信頼性の向上	
  
JSONやGroup	
  ReplicaNonなどクラウド環境での要件への対応	
  
Copyright	
  ©	
  2015	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
The	
  world's	
  most	
  popular	
  open	
  source	
  database	
  
世界で最も普及しているオープンソース データベース	
  

More Related Content

What's hot

[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合Ryusuke Kajiyama
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)Shinya Sugiyama
 
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...Insight Technology, Inc.
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月yoyamasaki
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jpyoyamasaki
 
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...Insight Technology, Inc.
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...Funada Yasunobu
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良Shinya Sugiyama
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...Insight Technology, Inc.
 
[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.
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20Ryusuke Kajiyama
 
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...Insight Technology, Inc.
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixMasaya Ishikawa
 
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexKoji Shinkubo
 
[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
 
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...Insight Technology, Inc.
 

What's hot (20)

[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
[db tech showcase 2017 Tokyo] D31 - MySQL 8.0の日本語キャラクタ・セットと文字照合
 
MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)MySQL 5.7 Technical Update (日本語)
MySQL 5.7 Technical Update (日本語)
 
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
 
MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月MySQL最新情報  ※2016年12月
MySQL最新情報  ※2016年12月
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
 
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
[DB tech showcase Tokyo 2015] B37 :オンプレミスからAWS上のSAP HANAまで高信頼DBシステム構築にHAクラスタリ...
 
MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良MySQL 5.7とレプリケーションにおける改良
MySQL 5.7とレプリケーションにおける改良
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
 
DataGuard体験記
DataGuard体験記DataGuard体験記
DataGuard体験記
 
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
 
[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 楽天株式会社 粟田啓介
 
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
MySQL 5.7 & 最新開発状況 @ オープンソースカンファレンス20
 
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
 
Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要Oracle GoldenGate Studio概要
Oracle GoldenGate Studio概要
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - Delphix
 
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortex
 
Oracle GoldenGate入門
Oracle GoldenGate入門Oracle GoldenGate入門
Oracle GoldenGate入門
 
[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
 
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
 

Viewers also liked

Webで役立つRDBの使い方
Webで役立つRDBの使い方Webで役立つRDBの使い方
Webで役立つRDBの使い方Soudai Sone
 
便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips豊明 尾古
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京Yuko Mori
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131Toshi Harada
 
Viewを使って開発を楽にする話
Viewを使って開発を楽にする話Viewを使って開発を楽にする話
Viewを使って開発を楽にする話Isamu Watanabe
 
すぐ始めれるクラウド
すぐ始めれるクラウドすぐ始めれるクラウド
すぐ始めれるクラウドSoudai Sone
 
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@sakaik
 
中国地方Db勉強会
中国地方Db勉強会中国地方Db勉強会
中国地方Db勉強会Daisuke Kasuya
 
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
 
20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fs20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fsTakahiro Iwase
 
意外と知らないFilemakerの世界
意外と知らないFilemakerの世界意外と知らないFilemakerの世界
意外と知らないFilemakerの世界Tatsuo_Ohtani
 
オープンデータ超入門
オープンデータ超入門オープンデータ超入門
オープンデータ超入門和宏 石崎
 
意外と知らないFilemakerの世界
意外と知らないFilemakerの世界意外と知らないFilemakerの世界
意外と知らないFilemakerの世界Tatsuo_Ohtani
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Toshi Harada
 
Amazon Redshiftを使ったデータ分析
Amazon Redshiftを使ったデータ分析Amazon Redshiftを使ったデータ分析
Amazon Redshiftを使ったデータ分析Tomohiro Yamaguchi
 
Chugoku db 17th-lt-kly
Chugoku db 17th-lt-klyChugoku db 17th-lt-kly
Chugoku db 17th-lt-klyToshi Harada
 
Handlerさんコンニチワ
HandlerさんコンニチワHandlerさんコンニチワ
Handlerさんコンニチワyoku0825
 
MySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロMySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロtsudaa
 

Viewers also liked (20)

Webで役立つRDBの使い方
Webで役立つRDBの使い方Webで役立つRDBの使い方
Webで役立つRDBの使い方
 
便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips
 
10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon201510大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131
 
Viewを使って開発を楽にする話
Viewを使って開発を楽にする話Viewを使って開発を楽にする話
Viewを使って開発を楽にする話
 
すぐ始めれるクラウド
すぐ始めれるクラウドすぐ始めれるクラウド
すぐ始めれるクラウド
 
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
最近始めたあなたも今日から語れるようになるMySQLの{概要と最新情報}入門@
 
中国地方Db勉強会
中国地方Db勉強会中国地方Db勉強会
中国地方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勉強会)
No sql with mysql cluster (MyNA・JPUG合同DB勉強会)
 
20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fs20151205 中国地方db勉強会 dbm_fs
20151205 中国地方db勉強会 dbm_fs
 
意外と知らないFilemakerの世界
意外と知らないFilemakerの世界意外と知らないFilemakerの世界
意外と知らないFilemakerの世界
 
オープンデータ超入門
オープンデータ超入門オープンデータ超入門
オープンデータ超入門
 
意外と知らないFilemakerの世界
意外と知らないFilemakerの世界意外と知らないFilemakerの世界
意外と知らないFilemakerの世界
 
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
 
Amazon Redshiftを使ったデータ分析
Amazon Redshiftを使ったデータ分析Amazon Redshiftを使ったデータ分析
Amazon Redshiftを使ったデータ分析
 
Chugoku db 17th-lt-kly
Chugoku db 17th-lt-klyChugoku db 17th-lt-kly
Chugoku db 17th-lt-kly
 
Chugokudb18_2
Chugokudb18_2Chugokudb18_2
Chugokudb18_2
 
Handlerさんコンニチワ
HandlerさんコンニチワHandlerさんコンニチワ
Handlerさんコンニチワ
 
MySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロMySQL のユーザー定義変数と RDB のココロ
MySQL のユーザー定義変数と RDB のココロ
 

Similar to 第九回中国地方DB勉強会 in 米子 MySQL 5.7+

オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクルエンジニア通信
 
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介Machiko Ikoma
 
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.
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_publicDAISUKE INAGAKI
 
[中国地方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
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要yoyamasaki
 
[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.
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL ShellもあるんですMachiko Ikoma
 
20201023_MySQL開発最新動向
20201023_MySQL開発最新動向20201023_MySQL開発最新動向
20201023_MySQL開発最新動向Machiko Ikoma
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003Shinya Sugiyama
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEyoyamasaki
 
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートオラクルエンジニア通信
 
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]オラクルエンジニア通信
 
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 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報yoyamasaki
 
OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門Dell TechCenter Japan
 
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートOracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートオラクルエンジニア通信
 

Similar to 第九回中国地方DB勉強会 in 米子 MySQL 5.7+ (20)

オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
 
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
 
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
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_public
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
MySQL製品概要
MySQL製品概要MySQL製品概要
MySQL製品概要
 
[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...
 
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
20190825_MySQL ServerだけじゃないMySQL Shellもあるんです
 
Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)Oracle Database Applianceのご紹介(詳細)
Oracle Database Applianceのご紹介(詳細)
 
20201023_MySQL開発最新動向
20201023_MySQL開発最新動向20201023_MySQL開発最新動向
20201023_MySQL開発最新動向
 
Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要Oracle GoldenGate Veridata概要
Oracle GoldenGate Veridata概要
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003
 
MySQLドキュメントストアとCTE
MySQLドキュメントストアとCTEMySQLドキュメントストアとCTE
MySQLドキュメントストアとCTE
 
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデートOracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2018年4月度サービス情報アップデート
 
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
【旧版】Oracle Cloud Infrastructure:サービス概要のご紹介 [2020年4月版]
 
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 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報
 
OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門
 
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデートOracle Cloud Infrastructure:2020年7月度サービス・アップデート
Oracle Cloud Infrastructure:2020年7月度サービス・アップデート
 

More from Ryusuke Kajiyama

[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストア[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストアRyusuke Kajiyama
 
[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門Ryusuke Kajiyama
 
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」Ryusuke Kajiyama
 
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーションRyusuke Kajiyama
 
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデートRyusuke Kajiyama
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?Ryusuke Kajiyama
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7Ryusuke Kajiyama
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCRyusuke Kajiyama
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"Ryusuke Kajiyama
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)Ryusuke Kajiyama
 
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise OsakaRyusuke Kajiyama
 
20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech UpdatesRyusuke Kajiyama
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014Ryusuke Kajiyama
 
State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014Ryusuke Kajiyama
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQLRyusuke Kajiyama
 
2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 Hiroshima2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 HiroshimaRyusuke Kajiyama
 

More from Ryusuke Kajiyama (17)

[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストア[OSC 2020 Online/Nagoya] MySQLドキュメントストア
[OSC 2020 Online/Nagoya] MySQLドキュメントストア
 
[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門[OSC 2020 Osaka] MySQL"超"入門
[OSC 2020 Osaka] MySQL"超"入門
 
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
2017年5月26日 オープンソースデータベース比較セミナー「NoSQLとしても使えるMySQLとMySQL Cluster」
 
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
第20回 中国地方DB勉強会 in 岡山 MySQLレプリケーション
 
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
[Java Küche RDB 最前線 2015] MySQL 5.7技術アップデート
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL 5.7
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RC
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)
 
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
[Preview] MySQL session at Open Source Conference 2014 .Enterprise Osaka
 
20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014
 
State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014State of the Dolphin, at db tech showcase Osaka 2014
State of the Dolphin, at db tech showcase Osaka 2014
 
20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL20140518 JJUG MySQL Clsuter as NoSQL
20140518 JJUG MySQL Clsuter as NoSQL
 
2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 Hiroshima2012.10.20 OSC 2012 Hiroshima
2012.10.20 OSC 2012 Hiroshima
 
MySQL de NoSQL Fukuoka
MySQL de NoSQL FukuokaMySQL de NoSQL Fukuoka
MySQL de NoSQL Fukuoka
 

第九回中国地方DB勉強会 in 米子 MySQL 5.7+

  • 1. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Ryusuke  Kajiyama  /  梶山隆輔  /  @RKajiyama   MySQL  Sales  ConsulIng  Senior  Manager,  Asia  Pacific  &  Japan   The  State  of  the  Dolphin
  • 2. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   以下の事項は、弊社の⼀一般的な製品の⽅方向性に関する概要を説明するものです。 また、情報提供を唯⼀一の⽬目的とするものであり、いかなる契約にも組み込むことはできません。 以下の事項は、マテリアルやコード、機能を提供することをコミットメントするものではない為 、購買決定を⾏行行う際の判断材料料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、 弊社の裁量量により決定されます。 SAFE  HARBOR  STATEMENT   5  
  • 3. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   The  world's  most  popular  open  source  database   世界で最も普及しているオープンソース データベース  
  • 4. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |    A  Year  of  Anniversaries!   20  Years:  MySQL   10  Years:  Oracle  stewardship  of  InnoDB    5  Years:  Oracle  stewardship  of  MySQL     Thank  You,  MySQL  Community,  for  20  years  of   ContribuIons  to  MySQL!  
  • 5. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Key  announcements  in  Jan-­‐Apr  2015 MySQL  Cluster  7.4  GA   •  200  Million  NoSQL  Reads/ Sec   •  2.5M  SQL  Ops/Sec   •  50%  Faster  Reads   •  40%  Faster  Mixed   •  5X  Faster  Maintenance   Ops   MySQL  Enterprise   Firewall   •  Real  Time  ProtecIon   •  Blocks  SQL  InjecIon   Acacks   •  Block  Suspicious  Traffic   •  Learns  White  List     •  Transparent   MySQL  5.7  RC     •  2  X  Faster  than  MySQL  5.6   •  New  OpImizer  Cost   Model   •  ReplicaIon   Improvements   •  InnoDB  FTS  CJK  Support   8
  • 6. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   9  
  • 7. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  MySQL製品のシンプルで便利なインス トール&アップグレード方法を提供   •  下記のディストリビューション向け   –  Oracle,  Red  Hat,  CentOS     –  Fedora   –  Ubuntu,  Debian   •  まもなく提供開始予定   –  SUSE   –  構成済みコンテナ   –  利用者の多いDevOpsデプロイツールのサ ポート   •  下記の最新リリースを含む   –  MySQL  Database   –  MySQL  Workbench   –  MySQL  Connector/ODBC   –  MySQL  Connector/Python   –  MySQL  Connector/NET   –  MySQL  UIliIes       10   MySQLコミュニティレポジトリ:  Yum,  APT,  NuGET  
  • 8. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   GitHubへのMySQLソースコードの掲載   •  MySQL開発チームのGit   –  各ディストリビューションにてより迅速、柔軟に   –  優れたツールの利用が可能に   –  幅広くいコミュニティとの交流   •  GitHub  for  MySQL  Community   –  コミュニティや関連プロジェクトへのより簡単かつ高速なソースコードの提供   –  ベータ版のレポジトリ: hcps://github.com/mysql   –  詳細:  hcp://mysqlrelease.com   11  
  • 9. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.6  リファレンスマニュアル日本語版 hAp://dev.mysql.com/doc/refman/5.6/ja/index.html 12
  • 10. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Enterprise  EdiIon 13
  • 11. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Enterprise  Backup   • オンラインバックアップ/リカバリ   • クラウドストレージへバックアップ • 差分バックパック  &  ポイントイン タイムリカバリ   MySQL  Enterprise  Security   • 外部認証との統合 (PAM,   Windows,  LDAP,  etc.)   • MySQL  Enterprise  Monitorで のセキュリティアドバイザ MySQL  Enterprise  EncrypNon   • AES256による対称暗号   • 公開鍵方式 /  非対称暗号   • 暗号学的ハッシュによる電子署 名、照合および妥当性確認   MySQL  Enterprise  Audit   • 接続、ログインおよびSQL実行 の記録   • ポリシーベースのフィルタリン グおよびログ切り替え   • オラクルの監査仕様に準拠し たXMLベースの出力   MySQL  Enterprise  EdiIonによるデータ保護
  • 12. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Enterprise  Firewall   •  SQL  InjecIon  ProtecIon  with  PosiIve  Security  Model   •  Out  of  policy  database  transacIons  detected  and  blocked   •  Logging  &  Analysis   Select *.* from employee where id=22! Select *.* from employee where id=22 or 1=1! Block  &  Log  ✖   Allow  &  Log  ✔   White  List  ApplicaNons  
  • 13. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Enterprise  Firewall  Details   •  Firewall  operaIon  is  turned  on  at  a  per  user  level   •  Per  User  States  are     – RECORDING   – PROTECTING   – OFF  
  • 14. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What  happens  when  SQL  is  blocked?   •  The  client  applicaIon  gets  an  ERROR   mysql> SELECT first_name, last_name FROM customer WHERE customer_id = 1 OR TRUE; ERROR 1045 (28000): Statement was blocked by Firewall mysql> SHOW DATABASES; ERROR 1045 (28000): Statement was blocked by Firewall mysql> TRUNCATE TABLE mysql.user; ERROR 1045 (28000): Statement was blocked by Firewall   •  Reported  to  the  Error  Log   •  Increment  Counter  
  • 15. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  7.4  GA 18
  • 16. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster:  SQL  and  NoSQL  Hybrid  APIs MySQL  Cluster  Data  Nodes   Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps JPA Cluster  JPA PHP Perl Python Ruby JDBC Cluster  J JS Apache Memcached MySQL JNI Node.JS mod_nd b ndb_eng NDB  API  (C++)
  • 17. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Cluster  7.4  GA   •  200  Million  NoSQL   Reads/Sec   •  2.5M  SQL  Ops/Sec   •  50%  Faster  Reads   •  40%  Faster  Mixed   Performance   •  AcIve-­‐AcIve   Geographic   Redundancy   •  Conflict  DetecIon/ ResoluIon   AcIve-­‐AcIve   •  5X  Faster   Maintenance  Ops   •  Detailed  ReporIng   Management   9th  April  2015   Copyright  2015,  oracle  and/or  its  affiliates.  All  rights  reserved   20  
  • 18. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Memory  opImized  tables   – Durable   – Mix  with  disk-­‐based  tables   •  Massively  concurrent  OLTP   •  Distributed  Joins  for  analyIcs   •  Parallel  table  scans  for  non-­‐indexed   searches   •  MySQL  Cluster  7.4  FlexAsych   – 200M  NoSQL  Reads/Second   9th  April  2015   21   MySQL  Cluster  7.4  NoSQL  Performance   200  Million  NoSQL  Reads/Second   Copyright  2015,  oracle  and/or  its  affiliates.  All  rights  reserved   !"!!!! !50,000,000!! !100,000,000!! !150,000,000!! !200,000,000!! !250,000,000!! 2! 4! 6! 8! 10! 12! 14! 16! 18! 20! 22! 24! 26! 28! 30! 32! Reads&per&second& Data&Nodes& FlexAsync&Reads&
  • 19. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Memory  opImized  tables   – Durable   – Mix  with  disk-­‐based  tables   •  Massively  concurrent  OLTP   •  Distributed  Joins  for  analyIcs   •  Parallel  table  scans  for  non-­‐indexed   searches   •  MySQL  Cluster  7.4  DBT2  BM   – 2.5M  SQL  Statements/Second   9th  April  2015   22   MySQL  Cluster  7.4  SQL  Performance   2.5M  SQL  Statements/Second   Copyright  2015,  oracle  and/or  its  affiliates.  All  rights  reserved   !"!!!! !500,000!! !1,000,000!! !1,500,000!! !2,000,000!! !2,500,000!! !3,000,000!! 2! 4! 6! 8! 10! 12! 14! 16! SQL$Statements/sec$ Data$Nodes$ DBT2$SQL$Statements$per$Second$
  • 20. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  製品ロードマップ      
  • 21. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   24 4.0   全文検索/GIS  (MyISAM)   複数テーブルUPDATE/DELETE   組み込みライブラリ型サーバ Oracle  MySQL   Sun   3.23   MyISAM   InnoDB   レプリケーション   5.1   プラグガブル・    ストレージエンジン・    アーキテクチャ パーティショニング   タスクスケジューラ 5.6   memcached  API   UNDO表領域   Global  TransacIon  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オプション      
  • 22. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  性能   – ミューテックスの分割   – 参照専用トランザクション   – SSDへの最適化   – UNDO表領域   – サブクエリ高速化   – JSON  EXPLAIN   – Memcached  API   •  可用性 – Global  TransacIon  ID   – 自動フェールオーバー   – マルチスレッド・スレーブ   – Binlog  グループ・コミット   – 行ベース・レプリケーショ ン最適化   – クラッシュセーフ・   スレーブ   – チェックサム 25 •  運用効率   – オンラインALTER  TABLE   – バッファプールのダンプ   およびインポート   – トランスポータブル   表領域   – セキュリティ強化   •  パスワードポリシー   •  SHA256   •  パスワード失効   MySQL5.6での機能拡張
  • 23. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  RC 26
  • 24. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  Release  Candidate  Available!   27   InnoDBの機能拡張:     Online&Bulk  load  オペレーション高速化   レプリケーションの改善    (mulI-­‐source,  mulI-­‐threaded  slaves等)   新しいオプティマイザコストモデル:   greater  user  control  &  becer  query  performance   Performance  Schema改善   MySQL  SYS  Schema改善   パフォーマンス  &  拡張性   管理性   MySQL  5.6比2倍の速度   セキュリティの向上:     より安全な初期化,  セットアップ&管理   NEW!  JSONのSupport  (now  in  labs)   RC   And  many  more  new  features  and  enhancements...  hcp://mysqlserverteam.com/the-­‐mysql-­‐5-­‐7-­‐7-­‐release-­‐candidate-­‐is-­‐available/    
  • 25. Copyright  ©  2015  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   Queries  per  Second   ConnecNons   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                      2x  Faster  than  MySQL  5.6          3x  Faster  than  MySQL  5.5   645,000  QPS   28  
  • 26. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  オプティマイザ  –  新コストモデル       SQL文の実行性能を向上     •  新しいコストモデルによりストレージエンジンでの処理を改善   –   より正確で動的なコスト見積もり   –   キーの参照、テーブルスキャン、レンジスキャン、インデックススキャンなど   •  様々な追加要素にてコストを設定可能   – ディスクI/O処理性能   – メモリ処理性能   •  インデックスからレコードへの参照の見積もり改善   •  コストの値はEXPLAINのJSON出力に含まれる     29   labs.mysql.com  
  • 27. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  OpImizer  -­‐  JSON  EXPLAINへのコスト情報追加     •  JSON  EXPLAINを拡張   – 出力可能なコスト情報を全て表示   – MySQL  WorkbenchのVisual  Explainにも表示   30   { "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" ], ...
  • 28. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  -­‐  General  Tablespace  Support 31 A  general  tablespace  is  a  shared  tablespace,  similar  to  the  system  tablespace.  It  can  hold  mulIple  tables,  and  supports  all   table  row  formats.  General  tablespaces  can  also  be  created  in  a  locaIon  relaIve  to  or  independent  of  the  data  directory.   [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=u•8mb4;   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=u•8mb4     >  ROW_FORMAT=COMPRESSED  KEY_BLOCK_SIZE  =8;   Query  OK,  0  rows  affected  (0.00  sec) 参照:13.1.15  CREATE  TABLESPACE  Syntax  
  • 29. Copyright  ©  2015  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に対応した専用の一時テーブル   – 軽量且つ超高速で、中間のクエリの実行操作に最適   32   参照:14.11  InnoDB  Startup  OpNons  and  System  Variables  
  • 30. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   クエリ・リライト・プラグイン •  クエリの書き換え  (パースの前と後)     •  パースした後での書き換えプラグイン   – アプリケーションを変更することなく問題のあるクエリを書き換 え   – ヒントの追加   – JOIN順の変更   •  ORマッパーやサードパーティ製のアプリなどが発行する   問題となり得るクエリなどに対応   33  
  • 31. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Generated  Column  Support   35   CREATE  TABLE  T_Generated_Column  (   >  pid  int(10)  unsigned  NOT  NULL  AUTO_INCREMENT,   >  pname  varchar(1024)  DEFAULT  NULL,   >  price  decimal(10,2),qty      int(10),     >  total  decimal(10,2)  GENERATED  ALWAYS  AS  (price  *  qty)   STORED,   >  PRIMARY  KEY  (pid)   >  )  ENGINE=InnoDB  DEFAULT  CHARSET=u•8mb4;     Query  OK,  0  rows  affected  (0.02  sec)   式から生成される列(2種類)   -­‐  VIRTUAL(default)  :  SELECT時に計算。データ保存されず,インデックスの作成不可   -­‐  STORED:    INSERT/UPDATE時に計算。データは保存され,インデックス作成可能   Useful  for:     -­‐  FuncIonal  index:  create  a  stored  column,  add  a  secondary  index   -­‐  Materialized  cache  for  complex  condiIons     -­‐  Simplify  query  expression   <type>      [  GENERATED  ALWAYS  ]      AS      (  <expression>  )      [  VIRTUAL|STORED  ]  [  UNIQUE  [KEY]  ]      [  [PRIMARY]  KEY  ]      [  NOT  NULL  ]      [  COMMENT  <text>  ]  
  • 32. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Generated  Column  Support   36   Generated  Columnに対してIndex作成が可能なので、   Where句はindexを利用し最適なコストでデータを抽出可能   参照: Generated  Columns  in  MySQL  5.7.5  
  • 33. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  -­‐  Full  Text  Search  (FTS)  -­‐  ngram 37 InnoDB  Full  Text  Search  (FTS)  にて 中国語,  韓国語,日本語をサポート   N-­‐gram  support  for  Chinese  and  Korean,  addiIonal  MeCab  support  for  Japanese   CREATE  TABLE  `N_DEMO`  (  `FTS_N_ID`  bigint(20)  unsigned  NOT  NULL  AUTO_INCREMENT,  `Itle`  varchar(100)  DEFAULT  NULL,       PRIMARY  KEY  (`FTS_N_ID`),  FULLTEXT  KEY  `ngram_idx`  (`Itle`)  /*!50100  WITH  PARSER  `ngram`  */     )  ENGINE=InnoDB  AUTO_INCREMENT=1  DEFAULT  CHARSET=u•8mb4;  
  • 34. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB  -­‐  Full  Text  Search  (FTS)  -­‐  mecab 38 InnoDB  Full  Text  Search  (FTS)  にて 中国語,  韓国語,日本語をサポート   N-­‐gram  support  for  Chinese  and  Korean,  addiIonal  MeCab  support  for  Japanese   CREATE  TABLE  `M_DEMO`  (  `FTS_M_ID`  bigint(20)  unsigned  NOT  NULL  AUTO_INCREMENT,  `Itle`  varchar(100)  DEFAULT  NULL,       PRIMARY  KEY  (`FTS_M_ID`),    FULLTEXT  KEY  `mecab_idx`  (`Itle`)  /*!50100  WITH  PARSER  `mecab`  */     )  ENGINE=InnoDB  AUTO_INCREMENT=1  DEFAULT  CHARSET=u•8mb4;  
  • 35. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  RCにおける運用サポート機能   •  Performance  Schema:  性能統計情報のさらなる追加   •  オンライン処理においての機能拡張   •  SYSLOGをLinux/Windows共にネイティブサーポート   •  GIS機能をInnoDBの空間インデックスとBoost.Geometryの統合でサポート   •  Security強化として,簡単で安全な初期設定と管理をサポート   39   •  ReplicaNon  for  becer  scalability  and  availability   •  Fabric  for  high  availability  and  sharding  
  • 36. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  SYS  Schema   DB管理者、開発者や運用担当者を支援   •  DB管理者や運用担当者の作業効率を改善    -­‐  サーバの稼働状況、ユーザやホストの状況、主要な稼働指標        -­‐  性能問題の発見、分析および改善     •  状況をより簡単に把握し理解するための複数のビュ ー    -­‐  IO量の高いファイルや処理、ロック、コストの高いSQL文        -­‐  テーブル、インデックス、スキーマの統計       •  他のデータベースにおけるSYS類似機能:   -­‐  Oracle  V$表          (動的パフォーマンスビュー)   -­‐  Microsoƒ  SQL  Server  DMV (Dynamic  Management  Views)   40  
  • 37. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   オンライン処理の拡張   41   • Resize  the  InnoDB  Buffer  Pool  online     –  オンラインでのバッファーサイズのチューニング   –  データベースの使用パターンの変化にリアルタイムで適応   • Separate  UNDO  tablespace   –  自動オンラインUNDOログ切り捨て(MySQL  5.7.5∼)   –  UNDOログファイルサイズの増加を回避する事が可能   • Dynamic  configuraNon   –  Making  exisIng  se„ngs  dynamically  configurable   –  As  a  design  principle  for  new  features  &  se„ngs   –  その他、幾つかのレプリケーションの設定変更等も     オンラインで変更可能になりました。   参照:14.4.8  TruncaIng  Undo  Logs  That  Reside  in  Undo  Tablespaces  
  • 38. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  独自コードの置き換え   – 空間図形情報の計算   – 空間図形情報の分析   •  OGC(Open  GeospaIal  ConsorIum)準拠   – パフォーマンスの向上   •  Boost.Geometryによる効果   – エキスパートとの交流   – 非常に活発なコミュニティ   •  Boost.Geometryへのコントリビュートも   MySQL  5.7:  GIS  -­‐  Boost.Geometryとの統合   43   例)ALTER  TABLE  テーブル名 add  SPATIAL  index(列名);
  • 39. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7.7  セキュリティの強化 •  mysql_install_dbコマンド非推奨   – mysqldの-­‐-­‐iniIalizeまたは-­‐-­‐iniIalize-­‐insecureオプションで初期化   •  CREATE  USER文とALTER  USER文にオプション追加   – SSL,  PASSWORD  EXPIRE,  ACCOUNT  [LOCK  |  UNLOCK]   •  mysql.userテーブルのPassword列がauthenIcaIon_stringに変更に   •  SET  PASSWORD文およびPASSWORD()関数が非推奨   – ALTER  USER文での設定を推奨   •  ENCRYPT,  DES_ENCRYPT,  DES_DECRYPT関数非推奨  AES推奨 ユーザ管理とセキュリティ mysqld  -­‐-­‐iniIalize  -­‐-­‐user=mysql mysql_install_db  -­‐-­‐user=mysql
  • 40. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Security  -­‐  EncrypNon,  Passwords,  InstallaNon   •  AES  256  EncrypIon  (Default  in  MySQL  5.7  )   •  パスワードローテーションポリシー   –  インスタンス全体、ユーザー単位で設定可能   •  Deployment:  デフォルトで安全に無人インストールを行う事が可能   –  インストール時にランダムなパスワードを設定/匿名のアカウントを削除   –  テストアカウント,  スキーマ(test),  デモファイルは作成されなくなりました   45    [  Global  ConfiguraNon  ]   SET  GLOBAL  default_password_lifeIme  =  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;  
  • 41. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7におけるレプリケーションの機能拡張 • MulI-­‐Source  ReplicaIon   • Performance  enhancement  of  MulI-­‐Thread  Slave   • gId_mode  is  now  dynamic   • Making  MySQL  Slave  ReplicaIon  Filters  Dynamic   • Preparing  implementaIon  of  Group  ReplicaIon  [Labs]  
  • 42. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  複数のマスターでの変更点を1台   のスレーブに集約   – 全てのシャードのデータを集約   – より柔軟なレプリケーション構成   – バックアップ処理を集約   •  準同期レプリケーション&改良 版   マルチスレッドスレーブ対応   •  スレーブ側でのフィルタリング が可能   MySQL  5.7:  MulI-­‐Source  ReplicaIon   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   47  
  • 43. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   48 MySQL  5.7:  MulI-­‐Source  ReplicaIon 参照:  17.1.4.1  MySQL  MulN-­‐Source  ReplicaNon  Overview   マルチソースレプリケーションには、競合 検知や   解消する仕組みは組み込まれていないので、   それぞれの送信元のデータが競合しないよ うに   アプリケーションの設計を行う必要があり ます。   例)   -­‐   データベース分割   -­‐   テーブルのシャーディング   各チャネルごとにレプリケーショ ンを構成  
  • 44. Copyright  ©  2015  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  TransacNons  per  Second   Baseline   50  clients   100  clients   150  clients   200  clients   51   -­‐-­‐slave-­‐parallel-­‐type     1.  DATABASE    :  (Default)  Use  the  db  parIIoned  MTS  (1  worker  per  database)   2.  LOGICAL_CLOCK:    Use  logical  clock  based  parallelizaIon  mode.  
  • 45. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   52 マルチスレッドスレーブセットアップ手順 ON  MASTER:   1.  start  master  with              -­‐-­‐binlog-­‐max-­‐flush-­‐queue-­‐Ime=0       ON  SLAVE:   1.a.  Start  slave  server  with                    -­‐-­‐slave-­‐parallel-­‐type=LOGICAL_CLOCK  -­‐-­‐slave-­‐parallel-­‐workers=N     又は     1.b  Start  the  slave  server  normally.     Change  the  MTS  opIons  dynamically  using  the  following   mysql:  STOP  SLAVE:  -­‐-­‐if  the  slave  is  running   mysql:  SET  GLOBAL  SLAVE_PARALLEL_TYPE='LOGICAL_CLOCK';   mysql:  SET  GLOBAL  SLAVE_PARALLEL_WORKER=N;   mysql:  START  SLAVE: ※Default  値は0   ※Default  値はDATABASE   ※Default  値は0  
  • 46. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   54 GTIDモード(gId_mode)レプリケーションへのオンライン移行 参照:Enabling  Global  TransacNon  IdenNfiers  Without  DownNme  in  MySQL  5.7.6   1.  Disable  all  write  operaIons.   2.  Wait  for  all  transacIons  to  propagate            from  the  master(s)  to  all  slaves.   3.  Stop  all  servers.   4.  On  each  server,  set  gId-­‐mode=ON  in  the  configuraIon   file.   5.  Start  all  servers.   6.  Enable  write  operaIons.   It  is  sIll  possible  to  use  the  old,  offline  procedure.     The  procedure  is  as  follows: Offline  procedure   Online  procedure   詳細:  17.1.5.2  Enabling  GTID  TransacIons  Online     17.1.5.4  Verifying  ReplicaIon  of  Anonymous  TransacIons   1   SET  @@GLOBAL.ENFORCE_GTID_CONSISTENCY  =  WARN; 2 SET  @@GLOBAL.ENFORCE_GTID_CONSISTENCY  =  ON; 3 SET  @@GLOBAL.GTID_MODE  =  OFF_PERMISSIVE; 4 SET  @@GLOBAL.GTID_MODE  =  ON_PERMISSIVE; 5 SHOW  STATUS  LIKE  'ONGOING_ANONYMOUS_TRANSACTION_COUNT'; 6 SET  @@GLOBAL.GTID_MODE  =  ON; 7 On  each  server,  add  gId-­‐mode=ON  to  my.cnf.   8 STOP  SLAVE  ;   CHANGE  MASTER  TO  MASTER_AUTO_POSITION  =  1;   START  SLAVE; 各サーバーで以下のコマンドを実行 MySQL  ReplicaIonの設定や運用を簡素化する為に、GTIDモードのレプリケーションを利用する方法がありますが、既にGTID モード以前のレプリケーションで運用されている場合は、稼働中の全てのサーバーを停止してからGTIDモードのレプリケー ションへ移行する必要がありました。しかし、稼働中のサービスを停止して切り替える事は難しいのが現実です。   MySQL  5.7.6  以降のMySQLにアップグレードする事で、オンラインのままMySQLのレプリケーションを切り替える事が出来るよ うになりました。   5.6.x   Standard   ReplicaIon 5.7.6~   Standard   ReplicaIon 5.7.6 ~   GTID  Mode   ReplicaIon ① ②
  • 47. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric  1.5:  高可用性  &  シャーディング   •  OpenStack  との統合   •  高可用性   –  サーバの監視;  スレーブの自動昇格と透過 的なレプリケーション切り替え   •  シャーディングによる拡張性   –  アプリケーションがシャードのキーを提供   •  整数型、日付型、文字列型   –  レンジまたはハッシュ   –  シャード再構成可能   •  Fabric対応コネクタ利用:  Python,  Java,   PHP,  .NET,  C  (labs)   –  プロキシを使わないので低レイテンシ、   ボトルネック無し   MySQL  Fabric   Connector   ApplicaIon   Read-­‐slaves   mappings   SQL   HA  group   Read-­‐slaves   HA  group   Connector   ApplicaIon   55   GA  
  • 48. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   56 MySQL  Slave  ReplicaIon  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以前は、ユーザーはOpIonファイル(my.cnf)か、コマンドラインパラメータを使用 してフィルタリングルールを設定することが出来ますが、いずれの場合もMySQLサーバはフィ ルタリングルールの変更を反映する為に再起動する必要があります。 The  following  slave  replicaIon  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  ReplicaNon  Filters  Dynamic  
  • 49. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Labs 57
  • 50. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Labs •  先進的な機能や実験的な仕様のをいち早く公開   – コミュニティからのフィードバックをいただく   •  将来的にはMySQLサーバやMySQL  Cluster本体への統合を期待   – MySQL  5.6  memcached  API   – MySQL  Cluster  7.2  memcached  API   – MySQL  5.6  Performance  Schema   – MySQL  5.6  Intra-­‐schema  MulI  Thread  Slave   – MySQL  5.6  Online  Alter  Table   – MySQL  5.7  MulI  Source  ReplicaIon   – MySQL  5.7  New  OpImizer  Cost  Model 58
  • 51. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  シェアード・ナッシング型”疑似”同期レプリケーション   •  更新はマルチ・マスタ型でどこでも可能   –  矛盾の検知と解決(トランザクションのロールバック   –  “OpImisIc  State  Machine”  レプリケーション   •  グループメンバーの管理と障害検知を自動化   –  サーバのフェールオーバー不要   –  構成の拡張/縮小の柔軟性   –  単一障害点無し   –  自動再構成   •  既存構成との統合   –  InnoDB   –  GTIDベースのレプリケーション   –  PERFORMANCE_SCHEMA   MySQL  5.7:  グループレプリケーション   ApplicaIon   MySQL  Masters   ReplicaIon     Plugin   API   MySQL   Server   Group  Comms   (Corosync)   59   labs.mysql.com  
  • 52. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Early  Access  Feature  (EAF):  Data  DicIonary   Replacing  the  FRMs   •  A  single  repository  for  database  object  metadata   – InnoDB  tables  replace  .frm,  .trg,  .trn,  .par  files   •  Atomic    &  crash-­‐safe  operaIons  today   –   TransacIonal  in  the  future   •  Makes  adding  new  features  much  easier   •  Eliminates  complexity,  resolves  bugs     •  Improves  performance     •  Leverages  InnoDB  strengths     60  
  • 53. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   HTTP  Plugin  for  MySQL   •  MySQLサーバへのHTTP(S)エンドポイントを提供するプラグイン   •  結果をUTF8でエンコードされたJSONフォーマットにシリアライズ   •  3種類のユーザエンドポイント   – SQL   – CRUD  -­‐  Key-­‐Value   – JSON  -­‐  Document   •  For  more  details;   hcp://www.slideshare.net/nixnutz/hcp-­‐plugin-­‐for-­‐mysql-­‐39598656   61  
  • 54. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   HTTP  Plugin  for  MySQL The  SQL  endpoint  and  JSON   62 shell> curl --user basic_auth_user:basic_auth_passwd --url "http://127.0.0.1:8080/sql/db/SELECT+1” [ { "meta":[ {"type":8,"catalog":"def","database":"","table":"”, "org_table":"","column":"1","org_column":"","charset":63, "length":1,"flags":129,"decimals":0} ], "data":[ ["1"] ], "status":[{"server_status":2,"warning_count":0}] } ]
  • 55. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   HTTP  Plugin  for  MySQL  -­‐  IniIal  version   •  HTTP  Basic  AuthenIcaIon  for  SSL  and  Non-­‐SSL     •  No  query  cache  support     •  No  commercial  thread  pool  plugin  support     •  Not  all  MySQL  pluggable  auth  methods  supported     •  Unlimited:  all  SQL  statements     •  Unlimited:  everything  the  server  returns     63   shell> curl --user basic_auth_user:basic_auth_passwd --url "http://.../sql/db/SELECT+col_float+FROM+sql_types"
  • 56. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Binlog  Events Formerly  known  as  Binlog  API •  C++  library  for  reading  Binary  log   •  Can  read  binary  log  from  server  or  from  file   – One  transport  for  each  kind  of  source   – Currently  have  file  and  mysql  transport   •  Decode  binary  log  events   – Contain  code  to  decode  the  events   •  Event  Driven  API   64
  • 57. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  JSON   •  OpImized  for  read  intensive  workload     •  NaIve  JSON  data  types   – NaIve  internal  binary  format  for  efficient  processing  &  storage   •  Built-­‐in  JSON  funcIons   – Allowing  you  to  efficiently  store,  search,  update,  and  manipulate  Documents   •  JSON  Comparator   – Allows  for  easy  integraIon  of  Document  data  within  your  SQL  queries   •  Indexing  of  Documents  using  Generated  Columns     – InnoDB  supports  indexes  on  both  stored  and  virtual  Generated  Columns   – New  expression  analyzer  automaIcally  uses  the  best  “funcIonal”  index  available   6/6/15   Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved     65  
  • 58. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  JSON 66 mysql> CREATE TABLE employees (data JSON); Query OK, 0 rows affected (0,01 sec) mysql> INSERT INTO employees VALUES ('{"id": 1, "name": "Jane"}'); Query OK, 1 row affected (0,00 sec) mysql> INSERT INTO employees VALUES ('{"id": 2, "name": "Joe"}'); Query OK, 1 row affected (0,00 sec) mysql> select * from employees; +---------------------------+ | data | +---------------------------+ | {"id": 1, "name": "Jane"} | | {"id": 2, "name": "Joe"} | +---------------------------+ 2 rows in set (0,00 sec)
  • 59. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  JSON •  Document  ValidaIon   – on  insert  only     •  Efficient  Access   67 mysql> INSERT INTO employees VALUES ('some random text'); ERROR 3130 (22032): Invalid JSON text: "Expect a value here." at position 0 in value (or column) 'some random text'. mysql> select jsn_extract(data, '$.name') from employees; +-----------------------------+ | jsn_extract(data, '$.name') | +-----------------------------+ | "Jane" | | "Joe" | +-----------------------------+ 2 rows in set (0,00 sec)
  • 60. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  jsn_array() –  Build  a  JSON  array  from  list  of  expressions   •  jsn_object() –  Builds  JSON  objects  from  a  variable  length  list   of  key/value  pairs   •  jsn_insert() –  Adds  'missing'  data  to  JSON  documents   •  jsn_remove() –  Removes  acributes  from  exisIng  JSON   documents   •  jsn_set() –  Sets  acributes  within  JSON  documents   •  jsn_replace() –  Replaces  (but  doesn't  add)  acributes  within   JSON  documents   •  jsn_append() –  Adds  a  value  to  the  end  of  an  array   •  jsn_merge() –  Merges  two  arrays     •  jsn_extract() –  Returns  a  value  nested  inside  of  a  JSON   document   6/6/15   68   JSON  FuncIons  for  CreaIng  &  ManipulaIng    JSON  Documents   Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved    
  • 61. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  jsn_search() –  Search  for  values  within  JSON  documents  and   return  their  locaIons   •  jsn_contains() –  Checks  for  a  specific  element  and  value   •  jsn_contains_path() –  Determine  if  a  specific  element  is  present  in  a   document  in  a  specific  posiIon   •  jsn_valid() –  Check  if  document  is  a  valid  JSON  document   •  jsn_type() –  Find  the  type  of  a  value  within  a  document   •  jsn_keys() –  Returns  arrays  of  the  key  names  for  the  JSON   documents   •  jsn_length() –  Number  of  elements  in  JSON  document   •  jsn_depth() –  Level  of  nesIng  in  JSON  document   •  jsn_unquote() –  Helps  move  from  JSON  to  other  MySQL  types   •  jsn_quote() –  Helps  move  from  other  MySQL  types  to  JSON   6/6/15   69   Query  and  Search  JSON  FuncIons   Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved    
  • 62. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Generated  Columns   •  Virtual  Generated  Column   – Generated  on  the  fly  when  the  column  is  read   – Can  be  indexed   •  Stored  Generated  Column   – Generated  when  the  referenced  column  is  wricen  to   – Can  be  indexed   mysql> ALTER TABLE employees ADD name VARCHAR(100) GENERATED ALWAYS AS(jsn_extract(info, '$.name')) VIRTUAL; mysql> ALTER TABLE employees ADD INDEX(name); hcp://mysqlserverteam.com/   70   Digging  into  your  Documents   labs.mysql.com   6/6/15   Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved    
  • 63. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Save  memory/storage  and  simplify   applicaIon   – Joins  between  Documents   •  Normalize  data  where  it  makes  sense   – Foreign  Keys  between  Documents   – Update  mulIple  Documents  in  a  single   atomic  transacIon   •  Leverage  all  of  your  data   – Read/write  Document  and  relaIonal   data  in  a  single  query/transacIon   •  20  years  of  product  maturity   6/6/15   71   So  Just  Another  Document  Store?   Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved    
  • 64. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   5.6   MySQL  Server  –  GA   InnoDBの改良やオプティマイザの刷新による性能&拡張性向上   レプリケーションの可用性向上  &  NoSQLインタフェース追加   MySQL  Cluster  -­‐  GA   秒間2億件のNoSQL処理、秒間200万件のSQL処理   リカバリや再起動時間の短縮   7.4   5.7   MySQL  Server  –  RC   リファクタリング  &  各機能のプラグイン化による性能と信頼性の向上   JSONやGroup  ReplicaNonなどクラウド環境での要件への対応  
  • 65. Copyright  ©  2015  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   The  world's  most  popular  open  source  database   世界で最も普及しているオープンソース データベース