Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
What’s	
  New	
  in	
  MySQL	
  5.7	
  
	
  
	
  
	
  
	
  
Copyright	
  ©	
  2014,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Safe	
  Harbor	
  Statement	
  
The	
  following	
  is	
  intended	
  to	
  outline	
  our	
  general	
  product	
  direcOon.	
  It	
  is	
  intended	
  for	
  
informaOon	
  purposes	
  only,	
  and	
  may	
  not	
  be	
  incorporated	
  into	
  any	
  contract.	
  It	
  is	
  not	
  a	
  
commitment	
  to	
  deliver	
  any	
  material,	
  code,	
  or	
  funcOonality,	
  and	
  should	
  not	
  be	
  relied	
  upon	
  
in	
  making	
  purchasing	
  decisions.	
  The	
  development,	
  release,	
  and	
  Oming	
  of	
  any	
  features	
  or	
  
funcOonality	
  described	
  for	
  Oracle’s	
  products	
  remains	
  at	
  the	
  sole	
  discreOon	
  of	
  Oracle.	
  
2	
  
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	
  
Connec9ons	
  
MySQL	
  5.7:	
  Sysbench	
  Read	
  Only	
  (Point	
  Select)	
  
MySQL	
  5.7	
  
MySQL	
  5.6	
  
MySQL	
  5.5	
  
MySQL	
  5.7:	
  Sysbench:	
  Read	
  Only	
  
	
  
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	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  InnoDB,	
  NoSQL	
  With	
  Memcached	
  
	
  
6x	
  Faster	
  than	
  MySQL	
  5.6	
  
Thank	
  you,	
  Facebook	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
0	
  
200,000	
  
400,000	
  
600,000	
  
800,000	
  
1,000,000	
  
1,200,000	
  
8	
   16	
   32	
   64	
   128	
   256	
   512	
   1,024	
  
Queries	
  per	
  Second	
  
Connec9ons	
  
MySQL	
  5.7	
  vs	
  5.6	
  -­‐	
  InnoDB	
  &	
  Memcached	
  
MySQL	
  5.7	
  
MySQL	
  5.6	
  
1	
  Million	
  QPS	
  
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	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  ConnecOons	
  per	
  Second	
  
	
  
1.7x	
  Faster	
  than	
  MySQL	
  5.6	
  
2.5x	
  Faster	
  than	
  MySQL	
  5.5	
  
	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
67,000	
  Connec9ons/Sec	
  
0	
  
10,000	
  
20,000	
  
30,000	
  
40,000	
  
50,000	
  
60,000	
  
70,000	
  
80,000	
  
MySQL	
  5.5	
   MySQL	
  5.6	
   MySQL	
  5.7	
  
Connec9ons/Second	
  
Connec9ons	
  Per	
  Second	
  
MySQL	
  5.5	
  
MySQL	
  5.6	
  
MySQL	
  5.7	
  
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	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
“The	
  actual	
  list	
  of	
  changes	
  and	
  improvements	
  is	
  simply	
  *huge*,	
  and	
  includes	
  many	
  
items	
  that	
  I	
  personally	
  find	
  rather	
  exci<ng!	
  Perhaps	
  I'm	
  mistaken	
  but	
  I	
  think	
  this	
  may	
  be	
  
one	
  of	
  the	
  largest	
  number	
  of	
  changes	
  packed	
  into	
  a	
  MySQL	
  point	
  release	
  that	
  I've	
  
witnessed	
  in	
  a	
  long	
  <me.	
  “	
  
Roland	
  Bouman	
  on	
  MySQL	
  5.7.5	
  DMR	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Improvements	
  in	
  latest	
  DMR	
  6	
  
	
  
•  InnoDB	
  for	
  beder	
  transacOonal	
  throughput,	
  availability,	
  IO	
  	
  
•  Replica9on	
  for	
  beder	
  scalability	
  and	
  availability	
  
•  MySQL	
  Fabric	
  for	
  high	
  availability	
  and	
  sharding	
  
•  Performance	
  Schema	
  for	
  new	
  and	
  improved	
  performance	
  metrics	
  
•  Op9mizer	
  for	
  beder	
  EXPLAINing,	
  parsing,	
  query	
  performance	
  
•  GIS	
  with	
  naOve	
  InnoDB	
  spaOal	
  indexes	
  and	
  Boost.Geometry	
  integraOon	
  
•  Security	
  with	
  easier,	
  safer	
  instance	
  iniOalizaOon,	
  setup	
  and	
  management	
  
Available	
  Now!	
  dev.mysql.com/downloads/mysql/	
  
7	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7	
  Parser	
  &	
  OpOmizer	
  Refactoring	
  
OpOmizer	
  
Logical	
  transformaOons	
  
Cost-­‐based	
  opOmizer:	
  
Join	
  order	
  and	
  access	
  methods	
  
Plan	
  refinement	
  
Query	
  execuOon	
  plan	
  
Query	
  execuOon	
  
Parser	
  
Resolver:	
  
SemanOc	
  check,name	
  resoluOon	
  
SQL	
  	
  DML	
  query	
  
Query	
  result	
  
Storage	
  Engine	
  
InnoDB	
   MyISAM	
  
Improves	
  readability,	
  
maintainability	
  and	
  stability	
  	
  
– Cleanly	
  separate	
  the	
  parsing,	
  
opOmizing,	
  and	
  execuOon	
  stages	
  
– Allows	
  for	
  easier	
  feature	
  addiOons,	
  
with	
  lessened	
  risk	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Parser	
  Refactoring	
  
	
  
•  Challenge:	
  
– Overly	
  complex,	
  hard	
  to	
  add	
  new	
  syntax	
  
•  SoluOon:	
  
– Create	
  an	
  internal	
  parse	
  tree	
  bodom-­‐up	
  
– Create	
  an	
  AST	
  (Abstract	
  Syntax	
  Tree)	
  from	
  the	
  parse	
  
tree	
  and	
  the	
  	
  user's	
  context.	
  	
  
– Have	
  syntax	
  rules	
  that	
  are	
  more	
  precisely	
  defined	
  
and	
  are	
  closer	
  to	
  	
  the	
  SQL	
  standard.	
  	
  
– More	
  precise	
  error	
  messages	
  
– Beder	
  support	
  for	
  larger	
  syntax	
  rules	
  in	
  the	
  future	
  
Resolver
Optimizer
SE
Lexical Scanner (lexer)
GNU Bison-generated Parser
(bottom-up parsing style)
Contextualization
Parser (new)
Executor
AST
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7	
  OpOmizer	
  
SELECT	
  a,	
  b	
  
FROM	
  t1,	
  t2,	
  t3	
  
WHERE	
  t1.a	
  =	
  t2.b	
  
	
  	
  	
  	
  	
  AND	
  t2.b	
  =	
  t3.c	
  
	
  	
  	
  	
  	
  AND	
  t2.d	
  >	
  20	
  
	
  	
  	
  	
  	
  AND	
  t2.d	
  <	
  30;	
  
MySQL	
  Server	
  
Cost	
  based	
  
opOmizaOons	
  
HeurisOcs	
  
Cost	
  Model	
  
OpOmizer	
  
Table/index	
  info	
  
(data	
  dicOonary)	
  
StaOsOcs	
  
(storage	
  engines)	
  
t2	
   t3	
  
t1	
  
Table	
  
scan	
  
Range	
  
scan	
  
Ref	
  
access	
  
JOIN	
  
JOIN	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  OpOmizer	
  Improvements	
  
	
  
•  Parser	
  and	
  opOmizer	
  refactoring	
  
•  Improved	
  cost	
  model	
  
– CondiOon	
  filtering	
  
– Configurable	
  cost	
  constants	
  
– API	
  for	
  storage	
  engines	
  to	
  indicate	
  locaOon	
  of	
  data	
  (disk	
  or	
  memory	
  buffer)	
  
– Costs	
  used	
  to	
  determine	
  opOmal	
  execuOon	
  (including	
  LIMIT)	
  
•  Query	
  Rewrite	
  Plugin	
  
•  Explain	
  on	
  a	
  running	
  query	
  
•  Generated	
  columns	
  	
  
	
  
11	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7	
  OpOmizer:	
  New	
  Cost	
  Model	
  -­‐	
  Why?	
  
•  More	
  accurate	
  cost	
  esOmates	
  
– Beder	
  decisions	
  by	
  the	
  opOmizer	
  should	
  improve	
  query	
  performance	
  
•  Adapt	
  to	
  new	
  hardware	
  architectures	
  
– SSDs,	
  larger	
  memory	
  sizes,	
  improved	
  caches	
  
•  More	
  maintainable	
  cost	
  model	
  implementaOon	
  
– Avoid	
  hard	
  coded	
  “cost	
  constants”	
  
– Refactoring	
  of	
  exisOng	
  cost	
  model	
  code	
  
•  Configurable	
  and	
  tunable	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Query	
  Rewrite	
  Plugin	
  
•  New	
  pre	
  and	
  post	
  parse	
  query	
  rewrite	
  APIs	
  	
  
– Users	
  can	
  write	
  their	
  own	
  plug-­‐ins	
  
•  Provides	
  a	
  post-­‐parse	
  query	
  plugin	
  
– Rewrite	
  problemaOc	
  queries	
  without	
  the	
  need	
  to	
  make	
  applicaOon	
  changes	
  
– Add	
  hints	
  
– Modify	
  join	
  order	
  
– Many	
  more	
  …	
  
•  Improve	
  problemaOc	
  queries	
  from	
  ORMs,	
  third	
  party	
  apps,	
  etc	
  
•  ~Zero	
  performance	
  overhead	
  for	
  queries	
  not	
  to	
  be	
  rewriden	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  OpOmizer	
  -­‐	
  Cost	
  Info	
  in	
  JSON	
  EXPLAIN	
  
	
  
•  Expanded	
  JSON	
  EXPLAIN	
  
– Now	
  includes	
  all	
  available	
  cost	
  info	
  
– Used	
  for	
  Visual	
  Explain	
  In	
  MySQL	
  Workbench	
  
14	
  
{
"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.	
  	
  |	
  
Early	
  Access	
  Feature	
  (EAF):	
  Data	
  DicOonary	
  
	
  
Replacing	
  the	
  FRMs	
  
	
  
•  A	
  single	
  repository	
  for	
  database	
  object	
  metadata	
  
– InnoDB	
  tables	
  replace	
  .frm,	
  .trg,	
  .trn,	
  .par	
  files	
  
•  Atomic	
  	
  &	
  crash-­‐safe	
  operaOons	
  today	
  
– 	
  TransacOonal	
  in	
  the	
  future	
  
•  Makes	
  adding	
  new	
  features	
  much	
  easier	
  
•  Eliminates	
  complexity,	
  resolves	
  bugs	
  	
  
•  Improves	
  performance	
  	
  
•  Leverages	
  InnoDB	
  strengths	
  
	
  
15	
  
labs.mysql.com	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
InnoDB	
  
New	
  Data	
  DicOonary:	
  Architecture	
  
Query	
  ExecuOoner	
  
Parser	
   OpOmizer	
  
Data	
  
DicOonary	
  
Tablespace	
  
Data	
  DicOonary	
  Internal	
  API	
  
Internal	
  SE	
  
Data	
  DicOonary	
  External	
  API	
  
Plugin	
  
Storage	
  
Engine	
  
Plugin	
  
Storage	
  
Engine	
  
Plugin	
   Plugin	
   Plugin	
  
User	
  Table	
  Tablespace	
  
labs.mysql.com	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Memory	
  Instrumenta9on	
  
•  Aggregates	
  staOsOcs	
  by	
  
–  Type	
  of	
  memory	
  used	
  
(caches,	
  internal	
  buffers,	
  …)	
  
–  Thread/account/user/host	
  
indirectly	
  performing	
  the	
  
memory	
  operaOon	
  	
  
•  Adributes	
  include	
  	
  
–  Memory	
  used	
  (bytes)	
  
–  OperaOon	
  counts	
  
–  High/Low	
  Water	
  Marks	
  	
  
Statement	
  Instrumenta9on	
  
•  Stored	
  Procedures	
  	
  
•  Stored	
  FuncOons	
  
•  Prepared	
  Statements	
  
•  TransacOons	
  
Addi9onal	
  Informa9on	
  
•  ReplicaOon	
  slave	
  status	
  
•  MDL	
  lock	
  instrumentaOon	
  
•  User	
  variables	
  per	
  thread	
  
•  Server	
  stage	
  tracking	
  
•  Track	
  long	
  running	
  SQL	
  
•  Improved	
  configuraOon	
  
•  All	
  while	
  reducing	
  total	
  
footprint	
  and	
  overhead	
  
	
  
MySQL	
  5.7:	
  Performance	
  Schema	
  
	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  SYS	
  Schema	
  
	
  
Helper	
  objects	
  for	
  DBAs,	
  Developers	
  and	
  Opera9ons	
  staff	
  
•  Helps	
  simplify	
  DBA	
  /	
  Ops	
  tasks	
  	
  	
  
	
  -­‐	
  Monitor	
  server	
  health,	
  user,	
  host	
  staOsOcs	
  
	
  -­‐	
  Spot,	
  diagnose,	
  and	
  tune	
  performance	
  issues	
  
•  	
  Easy	
  to	
  understand	
  views	
  with	
  insights	
  into	
  	
  	
  
	
  -­‐	
  IO	
  hot	
  spots,	
  Locking,	
  Costly	
  SQL	
  statements	
  	
  	
  
	
  -­‐	
  Schema,	
  table	
  and	
  index	
  staOsOcs	
  	
  	
  
•  SYS	
  is	
  similar	
  to	
  
-­‐	
  Oracle	
  V$	
  catalog	
  views	
  
-­‐	
  Microso{	
  SQL	
  DMVs	
  (Dynamic	
  Mgmnt	
  Views)	
  
	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Replaced	
  custom	
  code	
  
– For	
  spaOal	
  calculaOons	
  
– For	
  spaOal	
  analysis	
  	
  
•  Provides	
  OGC	
  compliance	
  
– With	
  improved	
  performance	
  	
  
•  Boost.Geometry	
  contains	
  
– Field	
  and	
  domain	
  experts	
  	
  
– Bustling	
  and	
  robust	
  community	
  
•  We’re	
  also	
  Boost.Geometry	
  contributors!	
  
MySQL	
  5.7:	
  GIS	
  -­‐	
  IntegraOng	
  Boost.Geometry	
  
	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  R-­‐tree	
  based	
  
– Full	
  transacOonal	
  support	
  
– Predicate	
  locking	
  to	
  prevent	
  phantoms	
  
– Records	
  contain	
  minimum	
  bounding	
  box	
  
•  Small	
  and	
  compact	
  
– Currently	
  only	
  supports	
  2D	
  data	
  
•  We	
  would	
  like	
  to	
  add	
  3D	
  support	
  in	
  the	
  future	
  	
  
– Supports	
  historical	
  spaOal	
  index	
  DDL	
  syntax	
  
MySQL	
  5.7:	
  GIS	
  -­‐	
  InnoDB	
  SpaOal	
  Indexes	
  
	
  
20	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  GeoHash	
  
– B-­‐tree	
  indexes	
  on	
  the	
  generated	
  hash	
  values	
  
– Quick	
  lookups	
  for	
  exact	
  locaOon	
  matches	
  
•  GeoJSON	
  
•  Many	
  addiOonal	
  type	
  combinaOons	
  
•  Geometry	
  CollecOon	
  support	
  
•  New	
  helper	
  funcOons	
  
–  ST_Distance_Sphere(),	
  ST_IsValid(),	
  ST_MakeEnvelope(),	
  ST_Simplify(),	
  ST_Validate()	
  
•  Limited	
  SRID	
  support	
  
{	
  
	
  	
  "type":	
  "Feature",	
  
	
  	
  "geometry":	
  {	
  
	
  	
  	
  	
  "type":	
  "Point",	
  
	
  	
  	
  	
  "coordinates":	
  [125.6,	
  10.1]	
  
	
  	
  },	
  
	
  	
  "properties":	
  {	
  
	
  	
  	
  	
  "name":	
  "Dinagat	
  Islands"	
  
	
  	
  }	
  
}	
  
GeoJSON	
  Example	
  
MySQL	
  5.7:	
  GIS	
  -­‐	
  AddiOonal	
  Features	
  
	
  
21	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  InnoDB	
  Improvements	
  
	
  
•  Scalability!	
  RO,	
  RW	
  
•  Parallel	
  “dirty	
  page”	
  flushing	
  
– Improved	
  adapOve	
  flushing	
  algorithm	
  and	
  mechanisms	
  
•  AutomaOc	
  truncaOon	
  of	
  UNDO	
  logs	
  
– Stored	
  in	
  separate	
  tablespace	
  	
  
•  Online,	
  resize	
  buffer	
  pool	
  
•  Fast	
  Create	
  Index,	
  Bulk	
  load	
  
•  Improved	
  Temporary	
  Table	
  performance	
  
•  Compression,	
  ParOOoning,	
  Tablespaces,	
  GIS	
  
22	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  InnoDB	
  -­‐	
  Online	
  
	
  
•  Resize	
  the	
  InnoDB	
  Buffer	
  Pool	
  online	
  	
  
– Allows	
  DBAs	
  to	
  tune	
  the	
  buffer	
  size	
  without	
  any	
  downOme	
  
– Adapt	
  in	
  real-­‐Ome	
  to	
  changes	
  in	
  database	
  usage	
  paderns	
  	
  
•  Online	
  ALTER	
  TABLE	
  
– Enlarge	
  VARCHAR,	
  Rename	
  Index	
  
•  Dynamic	
  configuraOon	
  
– As	
  a	
  design	
  principle	
  for	
  new	
  features	
  &	
  se}ngs	
  
– But	
  also	
  make	
  exisOng	
  variables	
  dynamically	
  sedable	
  	
  
23	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  InnoDB	
  -­‐	
  Bulk	
  Load	
  for	
  Create	
  Index	
  	
  
	
  
•  Much	
  faster	
  INDEX	
  creaOon	
  and	
  bulk	
  loads	
  	
  
•  Sorted	
  index	
  builds,	
  done	
  from	
  the	
  bodom-­‐up	
  
– Improves	
  speed	
  by	
  increasing	
  locality	
  and	
  decreasing	
  node	
  spli}ng	
  
•  Pages	
  are	
  compressed	
  only	
  when	
  full	
  
•  New	
  innodb_fill_factor	
  opOon	
  controls	
  free	
  space	
  le{	
  in	
  each	
  page	
  
•  Performance	
  results	
  show	
  
– 2-­‐3x	
  performance	
  improvement	
  for	
  ADD/CREATE	
  INDEX	
  operaOons	
  
– 2-­‐5%	
  improvement	
  for	
  standard	
  INSERT	
  operaOons	
  	
  
24	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  InnoDB	
  Temporary	
  Tables	
  	
  
	
  
•  New	
  separate	
  tablespace	
  for	
  temporary	
  tables	
  
– Improved	
  CREATE/DROP	
  performance	
  
– DDL	
  changes	
  are	
  transient,	
  which	
  eliminates	
  some	
  disk	
  IO	
  
•  OpOmize	
  DML	
  operaOons	
  
– No	
  REDO	
  logging,	
  no	
  change	
  buffering,	
  less	
  locking	
  
•  New	
  intrinsic	
  temporary	
  tables	
  
– Specialized	
  temporary	
  tables	
  with	
  tailored	
  ACID/MVCC	
  semanOcs	
  
– Light	
  weight	
  and	
  ultra-­‐fast,	
  great	
  for	
  intermediate	
  query	
  execuOon	
  operaOons	
  
•  InnoDB	
  as	
  default	
  storage	
  engine	
  for	
  disk	
  based	
  temp	
  tables	
  
– OpOmizer	
  switched	
  from	
  MyISAM	
  to	
  InnoDB	
  (faster)	
  for	
  internal	
  temp	
  tables	
  
25	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  InnoDB	
  Full-­‐Text	
  CJK	
  Support	
  
	
  
•  Two	
  new	
  Full-­‐Text	
  Parser	
  plugins	
  
•  N-­‐gram	
  parser	
  supports	
  Chinese,	
  Japanese,	
  &	
  Korean	
  
– Supports	
  all	
  ideographic	
  languages	
  that	
  do	
  not	
  use	
  word	
  delimiters	
  
•  MeCab	
  parser	
  supports	
  Japanese	
  
– NaOve	
  Japanese	
  focused	
  language	
  support	
  
•  Easily	
  customized	
  	
  
– Token	
  sizes,	
  stop	
  words,	
  …	
  
•  Supports	
  advanced	
  searches	
  	
  
– BOOLEAN	
  MODE,	
  NATURAL	
  LANGUAGE	
  MODE,	
  with	
  Ranking	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  InnoDB	
  
	
  
•  InnoDB	
  support	
  for	
  MySQL	
  Group	
  ReplicaOon	
  
– High	
  priority	
  transacOons	
  
•  InnoDB	
  NaOve	
  ParOOoning	
  
– Will	
  allow	
  us	
  to	
  eliminate	
  previous	
  limitaOons	
  on	
  parOOoned	
  tables	
  
– Removes	
  memory	
  usage	
  problems	
  when	
  many	
  parOOons	
  are	
  used	
  
•  Support	
  for	
  32K	
  and	
  64K	
  pages	
  
•  General	
  TABLESPACE	
  support	
  	
  
– Store	
  mulOple	
  tables	
  in	
  user	
  defined	
  shared	
  tablespaces	
  	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EAF:	
  InnoDB	
  Compression	
  
	
  Thank	
  you,	
  SanDisk	
  Fusion-­‐io	
  
	
  
•  Transparent	
  Page	
  Level	
  Compression	
  
– Happens	
  transparently	
  in	
  background	
  threads	
  
– Managed	
  enOrely	
  within	
  the	
  IO	
  layer	
  
– Uses	
  sparse	
  file	
  and	
  "hole	
  punching"	
  support	
  in	
  OS	
  kernels	
  and	
  File	
  Systems	
  
•  Reduces	
  IO	
  	
  
– Improves	
  MySQL	
  performance	
  
– Improves	
  storage	
  efficiency	
  
– Reduces	
  write	
  cycles,	
  thus	
  increasing	
  SSD	
  lifespan	
  
•  Applies	
  to	
  all	
  InnoDB	
  data,	
  including	
  the	
  system	
  tablespace	
  and	
  UNDO	
  logs	
  
28	
  
labs.mysql.com	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Syslog	
  Support	
  for	
  Linux/Unix	
  pla•orms	
  
	
  
	
  
•  NaOve	
  support	
  for	
  syslog	
  
•  Simple	
  opOon	
  to	
  (re)direct	
  log	
  output	
  to	
  naOve	
  syslog	
  facility	
  
•  Start-­‐up	
  server	
  configuraOon	
  opOon	
  
•  Dynamically	
  in	
  the	
  running	
  server	
  
– 	
  System	
  variable	
  log_syslog	
  (ON/OFF,	
  defaults	
  to	
  OFF).	
  
Thank	
  you,	
  Simon	
  Mudd	
  at	
  booking.com	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Security	
  -­‐	
  EncrypOon,	
  Passwords,	
  InstallaOon	
  
	
  
•  AES	
  256	
  EncrypOon	
  	
  
– Default	
  in	
  MySQL	
  5.7	
  	
  
•  Password	
  rotaOon	
  policies	
  
– Can	
  be	
  set	
  globally,	
  and	
  at	
  the	
  user	
  level	
  
•  Deployment:	
  enable	
  secure	
  unadended	
  install	
  by	
  default	
  
– Random	
  password	
  set	
  on	
  install	
  
– Remove	
  anonymous	
  accounts	
  
– Deployment	
  without	
  test	
  account,	
  schema,	
  demo	
  files	
  
•  Easier	
  instance	
  iniOalizaOon	
  and	
  setup:	
  mysqld	
  -­‐-­‐iniOalize	
  	
  
30	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Security	
  -­‐	
  SSL	
  
	
  
•  Enabled	
  by	
  default	
  
•  Auto-­‐detecOon	
  of	
  exisOng	
  keys	
  and	
  certs	
  
•  Auto	
  generaOon	
  of	
  keys	
  and	
  certs	
  when	
  needed	
  	
  
•  New	
  helper	
  uOlity:	
  mysql_ssl_rsa_setup	
  
31	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Locking	
  
	
  
MulOple	
  User	
  Level	
  Locks	
  per	
  ConnecOon	
  
•  User-­‐level	
  locks	
  can	
  be	
  used	
  to	
  organize	
  mutual	
  exclusion	
  
– 	
  When	
  accessing	
  some	
  resource	
  	
  
– 	
  When	
  table	
  or	
  row-­‐level	
  locks	
  are	
  not	
  appropriate	
  
•  Request	
  mulOple	
  locks	
  by	
  issuing	
  a	
  series	
  of	
  GET_LOCK	
  statements	
  	
  
•  Replaces	
  custom	
  user-­‐level	
  lock	
  implementaOon	
  
– With	
  one	
  based	
  on	
  the	
  MDL	
  lock	
  manager	
  	
  
– Deadlocks	
  between	
  different	
  connecOons	
  acquiring	
  user-­‐level	
  locks,	
  metadata	
  locks,	
  
and	
  those	
  waiOng	
  for	
  table	
  flushes	
  are	
  properly	
  detected	
  and	
  reported	
  as	
  errors.	
  	
  
Thank	
  you,	
  Konstan9n	
  Osipov!	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Improved	
  MDL	
  locking	
  
	
  
•  Fast-­‐path	
  for	
  DML	
  locks	
  
•  Lock-­‐free	
  DML	
  lock	
  acquisiOon	
  
•  Lock-­‐free	
  hash	
  
– Now	
  uses	
  MurmurHash	
  library	
  
•  Removes	
  bodlenecks	
  around	
  DML	
  access	
  to	
  a	
  single	
  table	
  
– 10%	
  increased	
  throughput	
  in	
  OLTP_RO/POINT_SELECT	
  sysbench	
  
– OpOmized	
  for	
  typical	
  DML	
  heavy	
  workloads	
  
33	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  Server-­‐side	
  Statement	
  Timeouts	
  
	
  
Thank	
  you	
  Davi	
  Arnaut!	
  
•  Server	
  side	
  statement	
  Omeouts	
  
– Global	
  for	
  server,	
  per	
  session,	
  or	
  for	
  individual	
  SELECT	
  statements	
  
•  Expanded	
  to	
  Windows	
  and	
  Solaris,	
  restricted	
  by	
  removing	
  USER	
  opOon	
  
	
  
SELECT MAX_STATEMENT_TIME = 109 * FROM my_table;
34	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  HA	
  &	
  Scaling	
  SoluOons	
  
MySQL	
  
Replica9on	
  
MySQL	
  
Fabric	
  
Oracle	
  VM	
  
Template	
  
Oracle	
  
Clusterware	
  
Solaris	
  
Cluster	
  
Windows	
  
Cluster	
  
DRBD	
  
MySQL	
  
Cluster	
  
App	
  Auto-­‐Failover	
   ✖	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Data	
  Layer	
  Auto-­‐Failover	
   ✖	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Zero	
  Data	
  Loss	
   MySQL	
  5.7	
   MySQL	
  5.7	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Pla•orm	
  Support	
   All	
   All	
   Linux	
   Linux	
   Solaris	
   Windows	
   Linux	
   All	
  
Clustering	
  Mode	
  
Master	
  +	
  
Slaves	
  
Master	
  +	
  
Slaves	
  
Ac9ve/
Passive	
  
Ac9ve/
Passive	
  
Ac9ve/
Passive	
  
Ac9ve/
Passive	
  
Ac9ve/
Passive	
  
Mul9-­‐
Master	
  
Failover	
  Time	
   N/A	
   Secs	
   Secs	
  +	
   Secs	
  +	
   Secs	
  +	
   Secs	
  +	
   Secs	
  +	
   <	
  1	
  Sec	
  
Scale-­‐out	
   Reads	
   ✔	
   ✖	
   ✖	
   ✖	
   ✖	
   ✖	
   ✔	
  
Cross-­‐shard	
  operaOons	
   N/A	
   ✖	
   N/A	
   N/A	
   N/A	
   N/A	
   N/A	
   ✔	
  
Transparent	
  rouOng	
   ✖	
   For	
  HA	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
  
Shared	
  Nothing	
   ✔	
   ✔	
   ✖	
   ✖	
   ✖	
   ✖	
   ✔	
   ✔	
  
Storage	
  Engine	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   InnoDB+	
   NDB	
  
Single	
  Vendor	
  Support	
   ✔	
   ✔	
   ✔	
   ✔	
   ✔	
   ✖	
   ✔	
   ✔	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  5.7:	
  ReplicaOon	
  Improvements	
  
	
  
•  On-­‐line,	
  phased	
  deployment	
  of	
  GTIDs	
  
•  Use	
  GTIDs	
  without	
  binary	
  logging	
  on	
  slave	
  
•  Improved	
  Master	
  throughput	
  	
  
–  Beder	
  synchronizaOon	
  between	
  replicaOon-­‐user	
  sessions;	
  Ack	
  receiver	
  thread,	
  group	
  commit	
  tuning…	
  
•  Lossless	
  ReplicaOon	
  through	
  enhanced	
  Semi-­‐sync	
  
•  Configurable	
  number	
  of	
  Semi-­‐sync	
  slave	
  Acks	
  
36	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  MulO-­‐Source	
  ReplicaOon	
  
– Consolidate	
  updates	
  from	
  mulOple	
  
Masters	
  into	
  one	
  Slave	
  
•  Consolidated	
  view	
  of	
  all	
  shards	
  
•  More	
  flexible	
  topologies	
  
•  Centralized	
  point	
  for	
  backups	
  
– CompaOble	
  with	
  Semi-­‐Sync	
  ReplicaOon	
  
&	
  enhanced	
  MTS	
  
•  Performance	
  Schema	
  tables	
  for	
  
monitoring	
  slave	
  
•  Online	
  OperaOons:	
  Dynamic	
  
ReplicaOon	
  Filters,	
  switch	
  master	
  
MySQL	
  5.7:	
  ReplicaOon	
  Improvements	
  
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	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  MulO-­‐Threaded	
  Slaves:	
  
– Performance	
  -­‐	
  Slave	
  applies	
  
transacOons	
  in	
  parallel	
  even	
  within	
  
same	
  database;	
  group	
  commit	
  tuning	
  
– OpOon	
  to	
  preserve	
  Commit	
  order	
  
– AutomaOc	
  slave	
  transacOon	
  retries	
  
•  Up	
  to	
  5X	
  performance	
  vs	
  single	
  
threaded	
  slave	
  
– No	
  changes	
  to	
  the	
  applicaOon	
  
•  GTIDs	
  &	
  Crash-­‐Safe	
  Slave	
  enabled	
  
MySQL	
  5.7:	
  ReplicaOon	
  Improvements	
  
0	
  
500	
  
1000	
  
1500	
  
2000	
  
2500	
  
3000	
  
3500	
  
4000	
  
4500	
  
5000	
  
0	
   4	
   16	
   25	
   50	
   100	
   200	
  
Worker	
  Threads	
  
Slave	
  Transac9ons	
  per	
  Second	
  
Baseline	
  
50	
  clients	
  
100	
  clients	
  
150	
  clients	
  
200	
  clients	
  
•  Sysbench	
  OLTP	
  test	
  
–  10M	
  rows	
  
–  SSD	
  /	
  48	
  core	
  HT	
  /	
  512	
  GB	
  RAM	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Shared-­‐nothing	
  virtually	
  synchronous	
  database	
  system	
  
•  MulO-­‐master	
  update	
  anywhere	
  
–  Conflict	
  detecOon	
  and	
  resoluOon	
  (transacOon	
  rollback)	
  
–  OpOmisOc	
  State	
  Machine	
  ReplicaOon	
  
•  AutomaOc	
  group	
  membership	
  management	
  and	
  failure	
  
detecOon	
  
–  No	
  need	
  for	
  server	
  fail-­‐over	
  
–  ElasOc	
  scale	
  out/in	
  
–  No	
  single	
  point	
  of	
  failure	
  
–  AutomaOc	
  reconfiguraOon	
  
•  Well	
  integrated	
  
–  InnoDB	
  
–  GTID-­‐based	
  replicaOon	
  
–  PERFORMANCE_SCHEMA	
  
EAF:	
  Group	
  ReplicaOon	
  
	
  
ApplicaOon	
  
MySQL	
  Masters	
   ReplicaOon	
  	
  
Plugin	
  
API	
  
MySQL	
  
Server	
  
Group	
  Comms	
  
(Corosync)	
  
labs.mysql.com	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EAF:	
  HTTP	
  Plugin	
  for	
  MySQL	
  
	
  
•  Server	
  Plugin	
  adds	
  HTTP(S)	
  endpoints	
  to	
  MySQL	
  
•  Results	
  are	
  serialized	
  to	
  JSON	
  format	
  encoded	
  as	
  UTF8	
  
•  Provides	
  3	
  choices	
  of	
  User	
  Endpoint	
  Types	
  
– SQL	
  
– CRUD	
  -­‐	
  Key-­‐Value	
  
– JSON	
  -­‐	
  Document	
  
labs.mysql.com	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Fabric	
  1.5	
  
•  High	
  Availability	
  
–  Server	
  monitoring	
  with	
  auto-­‐promoOon	
  and	
  
transparent	
  applicaOon	
  failover	
  
•  OpOonally	
  scale-­‐out	
  through	
  sharding	
  
–  ApplicaOon	
  provides	
  shard	
  key	
  
–  Range	
  or	
  Hash	
  
–  Tools	
  for	
  resharding	
  
–  Global	
  updates	
  &	
  tables	
  
•  Fabric-­‐aware	
  connectors	
  rather	
  than	
  
proxy:	
  Python,	
  Java,	
  PHP,	
  .NET,	
  C	
  (labs)	
  
–  Lower	
  latency,	
  bodleneck-­‐free	
  
•  Server	
  provisioning	
  using	
  OpenStack	
  etc.	
  
High	
  Availability	
  +	
  Sharding-­‐Based	
  Scale-­‐out	
  
MySQL	
  Fabric	
  
Connector	
  
ApplicaOon	
  
Read-­‐slaves	
  
mappings	
  
SQL	
  
HA	
  group	
  
Read-­‐slaves	
  
HA	
  group	
  
Connector	
  
ApplicaOon	
  
GA	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  Workbench	
  6.2	
  
	
  
•  Fabric	
  	
  
– Add	
  fabric	
  node,	
  browse,	
  view,	
  connect	
  
•  Performance	
  Dashboard	
  	
  
– Performance	
  Schema	
  Reports	
  &	
  Graphs	
  
•  Visual	
  Explain	
  
•  GIS	
  Viewer	
  
•  MigraOon	
  	
  
– New	
  Microso{	
  Access	
  	
  
– Microso{	
  SQL	
  Server,	
  Sybase,	
  PostgreSQL	
  
GA	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
MySQL	
  on	
  Windows	
  
•  MySQL	
  Installer	
  for	
  Windows	
  
•  MySQL	
  Workbench	
  
•  MySQL	
  MigraOon	
  Wizard	
  
–  Microso{	
  SQL	
  Server	
  
–  Microso{	
  Access	
  
•  MySQL	
  for	
  Visual	
  Studio	
  
•  MySQL	
  for	
  Excel	
  
•  MySQL	
  NoOfier	
  
•  MySQL	
  Connector/.Net	
  
•  MySQL	
  Connector/ODBC	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
•  Simple	
  and	
  convenient	
  way	
  to	
  install	
  &	
  
update	
  MySQL	
  products	
  
•  Supports	
  the	
  following	
  distribuOons	
  
–  Oracle,	
  Red	
  Hat,	
  CentOS	
  	
  
–  Fedora	
  
–  Ubuntu,	
  Debian	
  
–  SUSE	
  
•  Coming	
  Soon	
  
–  Preconfigured	
  Containers	
  
–  Improved	
  support	
  for	
  popular	
  DevOps	
  
deployment	
  tools	
  
•  The	
  latest	
  releases	
  of	
  
–  MySQL	
  Database	
  
–  MySQL	
  Workbench	
  
–  MySQL	
  Connector/ODBC	
  
–  MySQL	
  Connector/Python	
  
–  MySQL	
  Connector/NET	
  
–  MySQL	
  UOliOes	
  
	
  
	
  
MySQL	
  Community	
  Repositories:	
  Yum,	
  APT,	
  NuGET	
  
	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
	
  
MySQL	
  Source	
  Code	
  Available	
  on	
  GitHub	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  
•  Git	
  for	
  MySQL	
  Engineering	
  
–  Fast,	
  flexible	
  and	
  great	
  for	
  a	
  distributed	
  team	
  
–  Great	
  tooling	
  	
  
–  Large	
  and	
  vibrant	
  community	
  
•  GitHub	
  for	
  MySQL	
  Community	
  
–  Easy	
  and	
  fast	
  code	
  availability	
  to	
  the	
  community	
  and	
  to	
  downstream	
  projects	
  
	
  
hdps://github.com/mysql	
  	
  
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7

Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7

  • 1.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What’s  New  in  MySQL  5.7           Copyright  ©  2014,  Oracle  and/or  its  affiliates.  All  rights  reserved.      
  • 2.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  following  is  intended  to  outline  our  general  product  direcOon.  It  is  intended  for   informaOon  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a   commitment  to  deliver  any  material,  code,  or  funcOonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and  Oming  of  any  features  or   funcOonality  described  for  Oracle’s  products  remains  at  the  sole  discreOon  of  Oracle.   2  
  • 3.
    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   Connec9ons   MySQL  5.7:  Sysbench  Read  Only  (Point  Select)   MySQL  5.7   MySQL  5.6   MySQL  5.5   MySQL  5.7:  Sysbench:  Read  Only     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  
  • 4.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB,  NoSQL  With  Memcached     6x  Faster  than  MySQL  5.6   Thank  you,  Facebook                             0   200,000   400,000   600,000   800,000   1,000,000   1,200,000   8   16   32   64   128   256   512   1,024   Queries  per  Second   Connec9ons   MySQL  5.7  vs  5.6  -­‐  InnoDB  &  Memcached   MySQL  5.7   MySQL  5.6   1  Million  QPS   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  
  • 5.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  ConnecOons  per  Second     1.7x  Faster  than  MySQL  5.6   2.5x  Faster  than  MySQL  5.5                             67,000  Connec9ons/Sec   0   10,000   20,000   30,000   40,000   50,000   60,000   70,000   80,000   MySQL  5.5   MySQL  5.6   MySQL  5.7   Connec9ons/Second   Connec9ons  Per  Second   MySQL  5.5   MySQL  5.6   MySQL  5.7   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  
  • 6.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   “The  actual  list  of  changes  and  improvements  is  simply  *huge*,  and  includes  many   items  that  I  personally  find  rather  exci<ng!  Perhaps  I'm  mistaken  but  I  think  this  may  be   one  of  the  largest  number  of  changes  packed  into  a  MySQL  point  release  that  I've   witnessed  in  a  long  <me.  “   Roland  Bouman  on  MySQL  5.7.5  DMR  
  • 7.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Improvements  in  latest  DMR  6     •  InnoDB  for  beder  transacOonal  throughput,  availability,  IO     •  Replica9on  for  beder  scalability  and  availability   •  MySQL  Fabric  for  high  availability  and  sharding   •  Performance  Schema  for  new  and  improved  performance  metrics   •  Op9mizer  for  beder  EXPLAINing,  parsing,  query  performance   •  GIS  with  naOve  InnoDB  spaOal  indexes  and  Boost.Geometry  integraOon   •  Security  with  easier,  safer  instance  iniOalizaOon,  setup  and  management   Available  Now!  dev.mysql.com/downloads/mysql/   7  
  • 8.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  Parser  &  OpOmizer  Refactoring   OpOmizer   Logical  transformaOons   Cost-­‐based  opOmizer:   Join  order  and  access  methods   Plan  refinement   Query  execuOon  plan   Query  execuOon   Parser   Resolver:   SemanOc  check,name  resoluOon   SQL    DML  query   Query  result   Storage  Engine   InnoDB   MyISAM   Improves  readability,   maintainability  and  stability     – Cleanly  separate  the  parsing,   opOmizing,  and  execuOon  stages   – Allows  for  easier  feature  addiOons,   with  lessened  risk  
  • 9.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Parser  Refactoring     •  Challenge:   – Overly  complex,  hard  to  add  new  syntax   •  SoluOon:   – Create  an  internal  parse  tree  bodom-­‐up   – Create  an  AST  (Abstract  Syntax  Tree)  from  the  parse   tree  and  the    user's  context.     – Have  syntax  rules  that  are  more  precisely  defined   and  are  closer  to    the  SQL  standard.     – More  precise  error  messages   – Beder  support  for  larger  syntax  rules  in  the  future   Resolver Optimizer SE Lexical Scanner (lexer) GNU Bison-generated Parser (bottom-up parsing style) Contextualization Parser (new) Executor AST
  • 10.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  OpOmizer   SELECT  a,  b   FROM  t1,  t2,  t3   WHERE  t1.a  =  t2.b            AND  t2.b  =  t3.c            AND  t2.d  >  20            AND  t2.d  <  30;   MySQL  Server   Cost  based   opOmizaOons   HeurisOcs   Cost  Model   OpOmizer   Table/index  info   (data  dicOonary)   StaOsOcs   (storage  engines)   t2   t3   t1   Table   scan   Range   scan   Ref   access   JOIN   JOIN  
  • 11.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  OpOmizer  Improvements     •  Parser  and  opOmizer  refactoring   •  Improved  cost  model   – CondiOon  filtering   – Configurable  cost  constants   – API  for  storage  engines  to  indicate  locaOon  of  data  (disk  or  memory  buffer)   – Costs  used  to  determine  opOmal  execuOon  (including  LIMIT)   •  Query  Rewrite  Plugin   •  Explain  on  a  running  query   •  Generated  columns       11  
  • 12.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  OpOmizer:  New  Cost  Model  -­‐  Why?   •  More  accurate  cost  esOmates   – Beder  decisions  by  the  opOmizer  should  improve  query  performance   •  Adapt  to  new  hardware  architectures   – SSDs,  larger  memory  sizes,  improved  caches   •  More  maintainable  cost  model  implementaOon   – Avoid  hard  coded  “cost  constants”   – Refactoring  of  exisOng  cost  model  code   •  Configurable  and  tunable  
  • 13.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Query  Rewrite  Plugin   •  New  pre  and  post  parse  query  rewrite  APIs     – Users  can  write  their  own  plug-­‐ins   •  Provides  a  post-­‐parse  query  plugin   – Rewrite  problemaOc  queries  without  the  need  to  make  applicaOon  changes   – Add  hints   – Modify  join  order   – Many  more  …   •  Improve  problemaOc  queries  from  ORMs,  third  party  apps,  etc   •  ~Zero  performance  overhead  for  queries  not  to  be  rewriden  
  • 14.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  OpOmizer  -­‐  Cost  Info  in  JSON  EXPLAIN     •  Expanded  JSON  EXPLAIN   – Now  includes  all  available  cost  info   – Used  for  Visual  Explain  In  MySQL  Workbench   14   { "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" ], ...
  • 15.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Early  Access  Feature  (EAF):  Data  DicOonary     Replacing  the  FRMs     •  A  single  repository  for  database  object  metadata   – InnoDB  tables  replace  .frm,  .trg,  .trn,  .par  files   •  Atomic    &  crash-­‐safe  operaOons  today   –   TransacOonal  in  the  future   •  Makes  adding  new  features  much  easier   •  Eliminates  complexity,  resolves  bugs     •  Improves  performance     •  Leverages  InnoDB  strengths     15   labs.mysql.com  
  • 16.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   InnoDB   New  Data  DicOonary:  Architecture   Query  ExecuOoner   Parser   OpOmizer   Data   DicOonary   Tablespace   Data  DicOonary  Internal  API   Internal  SE   Data  DicOonary  External  API   Plugin   Storage   Engine   Plugin   Storage   Engine   Plugin   Plugin   Plugin   User  Table  Tablespace   labs.mysql.com  
  • 17.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Memory  Instrumenta9on   •  Aggregates  staOsOcs  by   –  Type  of  memory  used   (caches,  internal  buffers,  …)   –  Thread/account/user/host   indirectly  performing  the   memory  operaOon     •  Adributes  include     –  Memory  used  (bytes)   –  OperaOon  counts   –  High/Low  Water  Marks     Statement  Instrumenta9on   •  Stored  Procedures     •  Stored  FuncOons   •  Prepared  Statements   •  TransacOons   Addi9onal  Informa9on   •  ReplicaOon  slave  status   •  MDL  lock  instrumentaOon   •  User  variables  per  thread   •  Server  stage  tracking   •  Track  long  running  SQL   •  Improved  configuraOon   •  All  while  reducing  total   footprint  and  overhead     MySQL  5.7:  Performance  Schema    
  • 18.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  SYS  Schema     Helper  objects  for  DBAs,  Developers  and  Opera9ons  staff   •  Helps  simplify  DBA  /  Ops  tasks        -­‐  Monitor  server  health,  user,  host  staOsOcs    -­‐  Spot,  diagnose,  and  tune  performance  issues   •   Easy  to  understand  views  with  insights  into        -­‐  IO  hot  spots,  Locking,  Costly  SQL  statements        -­‐  Schema,  table  and  index  staOsOcs       •  SYS  is  similar  to   -­‐  Oracle  V$  catalog  views   -­‐  Microso{  SQL  DMVs  (Dynamic  Mgmnt  Views)    
  • 19.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Replaced  custom  code   – For  spaOal  calculaOons   – For  spaOal  analysis     •  Provides  OGC  compliance   – With  improved  performance     •  Boost.Geometry  contains   – Field  and  domain  experts     – Bustling  and  robust  community   •  We’re  also  Boost.Geometry  contributors!   MySQL  5.7:  GIS  -­‐  IntegraOng  Boost.Geometry    
  • 20.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  R-­‐tree  based   – Full  transacOonal  support   – Predicate  locking  to  prevent  phantoms   – Records  contain  minimum  bounding  box   •  Small  and  compact   – Currently  only  supports  2D  data   •  We  would  like  to  add  3D  support  in  the  future     – Supports  historical  spaOal  index  DDL  syntax   MySQL  5.7:  GIS  -­‐  InnoDB  SpaOal  Indexes     20  
  • 21.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  GeoHash   – B-­‐tree  indexes  on  the  generated  hash  values   – Quick  lookups  for  exact  locaOon  matches   •  GeoJSON   •  Many  addiOonal  type  combinaOons   •  Geometry  CollecOon  support   •  New  helper  funcOons   –  ST_Distance_Sphere(),  ST_IsValid(),  ST_MakeEnvelope(),  ST_Simplify(),  ST_Validate()   •  Limited  SRID  support   {      "type":  "Feature",      "geometry":  {          "type":  "Point",          "coordinates":  [125.6,  10.1]      },      "properties":  {          "name":  "Dinagat  Islands"      }   }   GeoJSON  Example   MySQL  5.7:  GIS  -­‐  AddiOonal  Features     21  
  • 22.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB  Improvements     •  Scalability!  RO,  RW   •  Parallel  “dirty  page”  flushing   – Improved  adapOve  flushing  algorithm  and  mechanisms   •  AutomaOc  truncaOon  of  UNDO  logs   – Stored  in  separate  tablespace     •  Online,  resize  buffer  pool   •  Fast  Create  Index,  Bulk  load   •  Improved  Temporary  Table  performance   •  Compression,  ParOOoning,  Tablespaces,  GIS   22  
  • 23.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB  -­‐  Online     •  Resize  the  InnoDB  Buffer  Pool  online     – Allows  DBAs  to  tune  the  buffer  size  without  any  downOme   – Adapt  in  real-­‐Ome  to  changes  in  database  usage  paderns     •  Online  ALTER  TABLE   – Enlarge  VARCHAR,  Rename  Index   •  Dynamic  configuraOon   – As  a  design  principle  for  new  features  &  se}ngs   – But  also  make  exisOng  variables  dynamically  sedable     23  
  • 24.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB  -­‐  Bulk  Load  for  Create  Index       •  Much  faster  INDEX  creaOon  and  bulk  loads     •  Sorted  index  builds,  done  from  the  bodom-­‐up   – Improves  speed  by  increasing  locality  and  decreasing  node  spli}ng   •  Pages  are  compressed  only  when  full   •  New  innodb_fill_factor  opOon  controls  free  space  le{  in  each  page   •  Performance  results  show   – 2-­‐3x  performance  improvement  for  ADD/CREATE  INDEX  operaOons   – 2-­‐5%  improvement  for  standard  INSERT  operaOons     24  
  • 25.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB  Temporary  Tables       •  New  separate  tablespace  for  temporary  tables   – Improved  CREATE/DROP  performance   – DDL  changes  are  transient,  which  eliminates  some  disk  IO   •  OpOmize  DML  operaOons   – No  REDO  logging,  no  change  buffering,  less  locking   •  New  intrinsic  temporary  tables   – Specialized  temporary  tables  with  tailored  ACID/MVCC  semanOcs   – Light  weight  and  ultra-­‐fast,  great  for  intermediate  query  execuOon  operaOons   •  InnoDB  as  default  storage  engine  for  disk  based  temp  tables   – OpOmizer  switched  from  MyISAM  to  InnoDB  (faster)  for  internal  temp  tables   25  
  • 26.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB  Full-­‐Text  CJK  Support     •  Two  new  Full-­‐Text  Parser  plugins   •  N-­‐gram  parser  supports  Chinese,  Japanese,  &  Korean   – Supports  all  ideographic  languages  that  do  not  use  word  delimiters   •  MeCab  parser  supports  Japanese   – NaOve  Japanese  focused  language  support   •  Easily  customized     – Token  sizes,  stop  words,  …   •  Supports  advanced  searches     – BOOLEAN  MODE,  NATURAL  LANGUAGE  MODE,  with  Ranking  
  • 27.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB     •  InnoDB  support  for  MySQL  Group  ReplicaOon   – High  priority  transacOons   •  InnoDB  NaOve  ParOOoning   – Will  allow  us  to  eliminate  previous  limitaOons  on  parOOoned  tables   – Removes  memory  usage  problems  when  many  parOOons  are  used   •  Support  for  32K  and  64K  pages   •  General  TABLESPACE  support     – Store  mulOple  tables  in  user  defined  shared  tablespaces    
  • 28.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EAF:  InnoDB  Compression    Thank  you,  SanDisk  Fusion-­‐io     •  Transparent  Page  Level  Compression   – Happens  transparently  in  background  threads   – Managed  enOrely  within  the  IO  layer   – Uses  sparse  file  and  "hole  punching"  support  in  OS  kernels  and  File  Systems   •  Reduces  IO     – Improves  MySQL  performance   – Improves  storage  efficiency   – Reduces  write  cycles,  thus  increasing  SSD  lifespan   •  Applies  to  all  InnoDB  data,  including  the  system  tablespace  and  UNDO  logs   28   labs.mysql.com  
  • 29.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Syslog  Support  for  Linux/Unix  pla•orms       •  NaOve  support  for  syslog   •  Simple  opOon  to  (re)direct  log  output  to  naOve  syslog  facility   •  Start-­‐up  server  configuraOon  opOon   •  Dynamically  in  the  running  server   –   System  variable  log_syslog  (ON/OFF,  defaults  to  OFF).   Thank  you,  Simon  Mudd  at  booking.com  
  • 30.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Security  -­‐  EncrypOon,  Passwords,  InstallaOon     •  AES  256  EncrypOon     – Default  in  MySQL  5.7     •  Password  rotaOon  policies   – Can  be  set  globally,  and  at  the  user  level   •  Deployment:  enable  secure  unadended  install  by  default   – Random  password  set  on  install   – Remove  anonymous  accounts   – Deployment  without  test  account,  schema,  demo  files   •  Easier  instance  iniOalizaOon  and  setup:  mysqld  -­‐-­‐iniOalize     30  
  • 31.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Security  -­‐  SSL     •  Enabled  by  default   •  Auto-­‐detecOon  of  exisOng  keys  and  certs   •  Auto  generaOon  of  keys  and  certs  when  needed     •  New  helper  uOlity:  mysql_ssl_rsa_setup   31  
  • 32.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Locking     MulOple  User  Level  Locks  per  ConnecOon   •  User-­‐level  locks  can  be  used  to  organize  mutual  exclusion   –   When  accessing  some  resource     –   When  table  or  row-­‐level  locks  are  not  appropriate   •  Request  mulOple  locks  by  issuing  a  series  of  GET_LOCK  statements     •  Replaces  custom  user-­‐level  lock  implementaOon   – With  one  based  on  the  MDL  lock  manager     – Deadlocks  between  different  connecOons  acquiring  user-­‐level  locks,  metadata  locks,   and  those  waiOng  for  table  flushes  are  properly  detected  and  reported  as  errors.     Thank  you,  Konstan9n  Osipov!  
  • 33.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Improved  MDL  locking     •  Fast-­‐path  for  DML  locks   •  Lock-­‐free  DML  lock  acquisiOon   •  Lock-­‐free  hash   – Now  uses  MurmurHash  library   •  Removes  bodlenecks  around  DML  access  to  a  single  table   – 10%  increased  throughput  in  OLTP_RO/POINT_SELECT  sysbench   – OpOmized  for  typical  DML  heavy  workloads   33  
  • 34.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Server-­‐side  Statement  Timeouts     Thank  you  Davi  Arnaut!   •  Server  side  statement  Omeouts   – Global  for  server,  per  session,  or  for  individual  SELECT  statements   •  Expanded  to  Windows  and  Solaris,  restricted  by  removing  USER  opOon     SELECT MAX_STATEMENT_TIME = 109 * FROM my_table; 34  
  • 35.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  HA  &  Scaling  SoluOons   MySQL   Replica9on   MySQL   Fabric   Oracle  VM   Template   Oracle   Clusterware   Solaris   Cluster   Windows   Cluster   DRBD   MySQL   Cluster   App  Auto-­‐Failover   ✖   ✔   ✔   ✔   ✔   ✔   ✔   ✔   Data  Layer  Auto-­‐Failover   ✖   ✔   ✔   ✔   ✔   ✔   ✔   ✔   Zero  Data  Loss   MySQL  5.7   MySQL  5.7   ✔   ✔   ✔   ✔   ✔   ✔   Pla•orm  Support   All   All   Linux   Linux   Solaris   Windows   Linux   All   Clustering  Mode   Master  +   Slaves   Master  +   Slaves   Ac9ve/ Passive   Ac9ve/ Passive   Ac9ve/ Passive   Ac9ve/ Passive   Ac9ve/ Passive   Mul9-­‐ Master   Failover  Time   N/A   Secs   Secs  +   Secs  +   Secs  +   Secs  +   Secs  +   <  1  Sec   Scale-­‐out   Reads   ✔   ✖   ✖   ✖   ✖   ✖   ✔   Cross-­‐shard  operaOons   N/A   ✖   N/A   N/A   N/A   N/A   N/A   ✔   Transparent  rouOng   ✖   For  HA   ✔   ✔   ✔   ✔   ✔   ✔   Shared  Nothing   ✔   ✔   ✖   ✖   ✖   ✖   ✔   ✔   Storage  Engine   InnoDB+   InnoDB+   InnoDB+   InnoDB+   InnoDB+   InnoDB+   InnoDB+   NDB   Single  Vendor  Support   ✔   ✔   ✔   ✔   ✔   ✖   ✔   ✔  
  • 36.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  ReplicaOon  Improvements     •  On-­‐line,  phased  deployment  of  GTIDs   •  Use  GTIDs  without  binary  logging  on  slave   •  Improved  Master  throughput     –  Beder  synchronizaOon  between  replicaOon-­‐user  sessions;  Ack  receiver  thread,  group  commit  tuning…   •  Lossless  ReplicaOon  through  enhanced  Semi-­‐sync   •  Configurable  number  of  Semi-­‐sync  slave  Acks   36  
  • 37.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  MulO-­‐Source  ReplicaOon   – Consolidate  updates  from  mulOple   Masters  into  one  Slave   •  Consolidated  view  of  all  shards   •  More  flexible  topologies   •  Centralized  point  for  backups   – CompaOble  with  Semi-­‐Sync  ReplicaOon   &  enhanced  MTS   •  Performance  Schema  tables  for   monitoring  slave   •  Online  OperaOons:  Dynamic   ReplicaOon  Filters,  switch  master   MySQL  5.7:  ReplicaOon  Improvements   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  
  • 38.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  MulO-­‐Threaded  Slaves:   – Performance  -­‐  Slave  applies   transacOons  in  parallel  even  within   same  database;  group  commit  tuning   – OpOon  to  preserve  Commit  order   – AutomaOc  slave  transacOon  retries   •  Up  to  5X  performance  vs  single   threaded  slave   – No  changes  to  the  applicaOon   •  GTIDs  &  Crash-­‐Safe  Slave  enabled   MySQL  5.7:  ReplicaOon  Improvements   0   500   1000   1500   2000   2500   3000   3500   4000   4500   5000   0   4   16   25   50   100   200   Worker  Threads   Slave  Transac9ons  per  Second   Baseline   50  clients   100  clients   150  clients   200  clients   •  Sysbench  OLTP  test   –  10M  rows   –  SSD  /  48  core  HT  /  512  GB  RAM  
  • 39.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Shared-­‐nothing  virtually  synchronous  database  system   •  MulO-­‐master  update  anywhere   –  Conflict  detecOon  and  resoluOon  (transacOon  rollback)   –  OpOmisOc  State  Machine  ReplicaOon   •  AutomaOc  group  membership  management  and  failure   detecOon   –  No  need  for  server  fail-­‐over   –  ElasOc  scale  out/in   –  No  single  point  of  failure   –  AutomaOc  reconfiguraOon   •  Well  integrated   –  InnoDB   –  GTID-­‐based  replicaOon   –  PERFORMANCE_SCHEMA   EAF:  Group  ReplicaOon     ApplicaOon   MySQL  Masters   ReplicaOon     Plugin   API   MySQL   Server   Group  Comms   (Corosync)   labs.mysql.com  
  • 40.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EAF:  HTTP  Plugin  for  MySQL     •  Server  Plugin  adds  HTTP(S)  endpoints  to  MySQL   •  Results  are  serialized  to  JSON  format  encoded  as  UTF8   •  Provides  3  choices  of  User  Endpoint  Types   – SQL   – CRUD  -­‐  Key-­‐Value   – JSON  -­‐  Document   labs.mysql.com  
  • 41.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric  1.5   •  High  Availability   –  Server  monitoring  with  auto-­‐promoOon  and   transparent  applicaOon  failover   •  OpOonally  scale-­‐out  through  sharding   –  ApplicaOon  provides  shard  key   –  Range  or  Hash   –  Tools  for  resharding   –  Global  updates  &  tables   •  Fabric-­‐aware  connectors  rather  than   proxy:  Python,  Java,  PHP,  .NET,  C  (labs)   –  Lower  latency,  bodleneck-­‐free   •  Server  provisioning  using  OpenStack  etc.   High  Availability  +  Sharding-­‐Based  Scale-­‐out   MySQL  Fabric   Connector   ApplicaOon   Read-­‐slaves   mappings   SQL   HA  group   Read-­‐slaves   HA  group   Connector   ApplicaOon   GA  
  • 42.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Workbench  6.2     •  Fabric     – Add  fabric  node,  browse,  view,  connect   •  Performance  Dashboard     – Performance  Schema  Reports  &  Graphs   •  Visual  Explain   •  GIS  Viewer   •  MigraOon     – New  Microso{  Access     – Microso{  SQL  Server,  Sybase,  PostgreSQL   GA  
  • 43.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  on  Windows   •  MySQL  Installer  for  Windows   •  MySQL  Workbench   •  MySQL  MigraOon  Wizard   –  Microso{  SQL  Server   –  Microso{  Access   •  MySQL  for  Visual  Studio   •  MySQL  for  Excel   •  MySQL  NoOfier   •  MySQL  Connector/.Net   •  MySQL  Connector/ODBC  
  • 44.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Simple  and  convenient  way  to  install  &   update  MySQL  products   •  Supports  the  following  distribuOons   –  Oracle,  Red  Hat,  CentOS     –  Fedora   –  Ubuntu,  Debian   –  SUSE   •  Coming  Soon   –  Preconfigured  Containers   –  Improved  support  for  popular  DevOps   deployment  tools   •  The  latest  releases  of   –  MySQL  Database   –  MySQL  Workbench   –  MySQL  Connector/ODBC   –  MySQL  Connector/Python   –  MySQL  Connector/NET   –  MySQL  UOliOes       MySQL  Community  Repositories:  Yum,  APT,  NuGET    
  • 45.
    Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |     MySQL  Source  Code  Available  on  GitHub                                                                                   •  Git  for  MySQL  Engineering   –  Fast,  flexible  and  great  for  a  distributed  team   –  Great  tooling     –  Large  and  vibrant  community   •  GitHub  for  MySQL  Community   –  Easy  and  fast  code  availability  to  the  community  and  to  downstream  projects     hdps://github.com/mysql