Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TWJUG August, What's new in MySQL 5.7 RC

581 views

Published on

This slide is used at TWJUG 八月份聚會, for MySQL session explaining What's new in MySQL 5.7 RC including HTTP Plugin and JSON datatype.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

TWJUG August, What's new in MySQL 5.7 RC

  1. 1. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What's  new  in  MySQL  5.7   Ryusuke  Kajiyama  /  梶山隆輔  /  @RKajiyama   MySQL  Sales  ConsulNng  Senior  Manager,  Asia  Pacific  &  Japan  
  2. 2. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  following  is  intended  to  outline  our  general  product  direcNon.  It  is  intended  for   informaNon  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a   commitment  to  deliver  any  material,  code,  or  funcNonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and  Nming  of  any  features  or   funcNonality  described  for  Oracle’s  products  remains  at  the  sole  discreNon  of  Oracle.   3  
  3. 3. 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   ContribuNons  to  MySQL!  
  4. 4. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   5  
  5. 5. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   6 4.0   Full  Text  Search/GIS  (MyISAM)   MulN-­‐table  UPDATE/DELETE   libmysqld  (embedded  MySQL) Oracle  MySQL   Sun   3.23   MyISAM   InnoDB   ReplicaNon   5.1   Pluggable  Storage  Engine   ParNNoning   Task  Scheduler 5.6   memcached  API   UNDO  Tablespace   Global  TransacNon  ID   MulN  Thread  Slave   Online  ALTER  TABLE   Transportable  Tablespace   5.5   InnoDB  as  Default   Semi-­‐sync  ReplicaNon   PERFORMANCE_SCHEMA   1.0-­‐3.22   Storage  Engine  (ISAM,  HEAP) MulN  Thread Windows  ready/64bit   Character  sets  (SJIS/UJIS) 5.0   Stored  Procedures   Stored  FuncNons Cursors/Triggers/Views   XA  TransacNons INFORMATION_SCHEMA   4.1   Unicode   Subquery   CSV,  ARCHIVE   ndbcluster   1995 2000 2005 2010 2015 5.7+   New  OpNmizer  Cost  Model   Loss-­‐Less  ReplicaNon   MulN  Source  ReplicaNon   Group  RplicaNon   CJK  Full  Text  Search/GIS  (InnoDB)   Enhanced  Security   Data  DicNonary   NoSQL  OpNons      
  6. 6. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Performance   – Read-­‐Only  TransacNon   – SSD  OpNmizaNons   – UNDO  Tablespace   – Faster  Subqueries   – JSON  EXPLAIN   – Memcached  API   •  Availability – Global  TransacNon  ID   – Auto  Failover   – MulN  Thread  Slave   – Binlog  Group  Commit   – OpNmized  Row-­‐Based   ReplicaNon   – Crash-­‐safe  Slave   – ReplicaNon  Checksum 7 •  OperaNons   – Online  ALTER  TABLE   – Dump  and  Import  of   InnoDB  Buffer  Pool   – Transportable  Tablespace   – Enhanced  Security   •  Password  Policy   •  SHA256   •  Password  ExpiraNon   What's  new  in  MySQL5.6
  7. 7. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  Release  Candidate  Available!   8   Enhanced  InnoDB:  faster  online  &  bulk   load  operaNons   ReplicaNon  Improvements  (incl.  mulN-­‐ source,  mulN-­‐threaded  slaves...)   New  OpNmizer  Cost  Model:  greater  user   control  &  berer  query  performance   Performance  Schema  Improvements   MySQL  SYS  Schema   Performance  &  Scalability   Manageability   2  X  Faster  than  MySQL  5.6   Improved  Security:  safer  iniNalizaNon,   setup  &  management   NEW!  JSON  Support  (now  in  labs)   RC   And  many  more  new  features  and  enhancements...  hrp://mysqlserverteam.com/the-­‐mysql-­‐5-­‐7-­‐7-­‐release-­‐candidate-­‐is-­‐available/    
  8. 8. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Improvements  Leading  up  to  RC1   •  InnoDB  for  berer  transacNonal  throughput,  availability,  IO     •  ReplicaDon  for  berer  scalability  and  availability   •  Fabric  for  high  availability  and  sharding   •  Performance  Schema  for  new  and  improved  performance  metrics   •  OpDmizer  for  berer  EXPLAINing,  parsing,  query  performance   •  GIS  with  naNve  InnoDB  spaNal  indexes  and  Boost.Geometry  integraNon   •  Security  with  easier,  safer  instance  iniNalizaNon,  setup  and  management   Available  Now!  dev.mysql.com/downloads/mysql/   9  
  9. 9. 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   ConnecDons   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  
  10. 10. 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   ConnecDons   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  
  11. 11. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  Parser  &  OpNmizer  Refactoring   OpNmizer   Logical  transformaNons   Cost-­‐based  opNmizer:   Join  order  and  access  methods   Plan  refinement   Query  execuNon  plan   Query  execuNon   Parser   Resolver:   SemanNc  check,name  resoluNon   SQL    DML  query   Query  result   Storage  Engine   InnoDB   MyISAM   Improves  readability,   maintainability  and  stability     – Cleanly  separate  the  parsing,   opNmizing,  and  execuNon  stages   – Allows  for  easier  feature  addiNons,   with  lessened  risk  
  12. 12. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Parser  Refactoring     •  Challenge:   – Overly  complex,  hard  to  add  new  syntax   •  SoluNon:   – Create  an  internal  parse  tree  borom-­‐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   – Berer  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
  13. 13. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  OpNmizer  and  Parser  refactoring   –  Improves  readability,  maintainability  and   stability     –  Cleanly  separate  the  parsing,  opNmizing,  and   execuNon  stages   –  Allows  for  easier  feature  addiNons,  with   lessened  risk   •  New  hint  framework   –  Easier  to  manage     –  With  support  for  addiNonal  new  hints     •  Improved  JSON  EXPLAIN   •  EXPLAIN  for  running  thread   •  New  Cost  based  OpNmizer   •  Generated  Columns   •  Support  for  InnoDB  based  internal  temp   tables     •  Berer  ONLY_FULL_GROUP_BY  mode   •  Berer  support  for  InnoDB  &  GIS   •  Many  specific  new  opNmizaNons     Queries  execute  faster,  while  using  less   CPU  and  disk  space!     MySQL  5.7:  OpNmizer  Improvements     14  
  14. 14. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7  OpNmizer:  New  Cost  Model   •  More  accurate  cost  esNmates   – Berer  decisions  by  the  opNmizer  should  improve  query  performance   •  Adapt  to  new  hardware  architectures   – SSDs,  larger  memory  sizes,  improved  caches   •  More  maintainable  cost  model  implementaNon   – Avoid  hard  coded  “cost  constants”   – Refactoring  of  exisNng  cost  model  code   •  Configurable  and  tunable   – mysql.server_cost  and  mysql.engine_cost  tables   – API  for  determining  where  data  resides:  on  disk  or  in  cache     15  
  15. 15. 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  problemaNc  queries  without  the  need  to  make  applicaNon  changes   – Add  hints   – Modify  join  order   – Many  more  …   •  Improve  problemaNc  queries  from  ORMs,  third  party  apps,  etc   •  Eliminates  many  legacy  use  cases  for  proxies  
  16. 16. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  OpNmizer  -­‐  Cost  Info  in  JSON  EXPLAIN     •  Expanded  JSON  EXPLAIN   – Now  includes  all  available  cost  info   – Used  for  Visual  Explain  In  MySQL  Workbench   17   { "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" ], ...
  17. 17. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Memory  InstrumentaDon   •  Aggregates  staNsNcs  by   –  Type  of  memory  used   (caches,  internal  buffers,  …)   –  Thread/account/user/host   indirectly  performing  the   memory  operaNon     •  Arributes  include     –  Memory  used  (bytes)   –  OperaNon  counts   –  High/Low  Water  Marks     Statement  InstrumentaDon   •  Stored  Procedures     •  Stored  FuncNons   •  Prepared  Statements   •  TransacNons   AddiDonal  InformaDon   •  ReplicaNon  slave  status   •  MDL  lock  instrumentaNon   •  Status  and  variables  per   thread   •  Server  stage  tracking   •  Track  long  running  SQL   •  Improved  configuraNon   and  ease-­‐of-­‐use   •  All  while  reducing  total   footprint  and  overhead       MySQL  5.7:  Performance  Schema    
  18. 18. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   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   •  For  more  details;   hrp://www.slideshare.net/nixnutz/hrp-­‐plugin-­‐for-­‐mysql-­‐39598656   19  
  19. 19. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   HTTP  Plugin  for  MySQL The  SQL  endpoint  and  JSON   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}] } ]
  20. 20. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   HTTP  Plugin  for  MySQL  -­‐  IniNal  version   •  HTTP  Basic  AuthenNcaNon  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     21   shell> curl --user basic_auth_user:basic_auth_passwd --url "http://.../sql/db/SELECT+col_float+FROM+sql_types"
  21. 21. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   HTTP  Plugin  for  MySQL GET  =  SELECT   shell> curl ... --url "http://../crud/db/sql_types/1" { "id" : "1", "col_char" : "CHAR(127)" , "col_null" : null, "col_date" : "2014-12-23", "col_decimal" : "123.45", "col_float" : "0.9999", "col_bigint" : "9223372036854775807" } shell> curl ... --url 'http://../crud/db/simple/' { "errno" : 2000, "error" : "The request URL must include a primary key value” }
  22. 22. 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   23
  23. 23. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  JSON   •  OpNmized  for  read  intensive  workload     •  NaNve  JSON  data  types   – NaNve  internal  binary  format  for  efficient  processing  &  storage   •  Built-­‐in  JSON  funcNons   – Allowing  you  to  efficiently  store,  search,  update,  and  manipulate  Documents   •  JSON  Comparator   – Allows  for  easy  integraNon  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  automaNcally  uses  the  best  “funcNonal”  index  available   24  
  24. 24. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  JSON 25 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)
  25. 25. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  JSON •  Document  ValidaNon   – on  insert  only     •  Efficient  Access   26 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)
  26. 26. 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  arributes  from  exisNng  JSON   documents   •  jsn_set() –  Sets  arributes  within  JSON  documents   •  jsn_replace() –  Replaces  (but  doesn't  add)  arributes  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   27   JSON  FuncNons  for  CreaNng  &  ManipulaNng    JSON  Documents  
  27. 27. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  jsn_search() –  Search  for  values  within  JSON  documents  and   return  their  locaNons   •  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  posiNon   •  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  nesNng  in  JSON  document   •  jsn_unquote() –  Helps  move  from  JSON  to  other  MySQL  types   •  jsn_quote() –  Helps  move  from  other  MySQL  types  to  JSON   28   Query  and  Search  JSON  FuncNons  
  28. 28. 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  wriren  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); hrp://mysqlserverteam.com/   Digging  into  your  Documents   labs.mysql.com  
  29. 29. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Save  memory/storage  and  simplify   applicaNon   – Joins  between  Documents   •  Normalize  data  where  it  makes  sense   – Foreign  Keys  between  Documents   – Update  mulNple  Documents  in  a  single   atomic  transacNon   •  Leverage  all  of  your  data   – Read/write  Document  and  relaNonal   data  in  a  single  query/transacNon   •  20  years  of  product  maturity   30   So  Just  Another  Document  Store?  
  30. 30. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  SYS  Schema     Helper  objects  for  DBAs,  Developers  and  OperaDons  staff   •  Helps  simplify  DBA  /  Ops  tasks        -­‐  Monitor  server  health,  user,  host  staNsNcs    -­‐  Spot,  diagnose,  and  tune  performance  issues   •   Easy  to  understand  views  with  insights  into        -­‐  IO  hot  spots,  Locking,  Costly  SQL  statements        -­‐  Schema,  table  and  index  staNsNcs       •  SYS  is  similar  to   -­‐  Oracle  V$  catalog  views   -­‐  Microso{  SQL  DMVs  (Dynamic  Mgmnt  Views)    
  31. 31. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  Replaced  custom  code  with  Boost.Geometry   –  For  spaNal  calculaNons   –  For  spaNal  analysis     –  Enabling  full  OGC  compliance   –  We’re  also  Boost.Geometry  contributors!   •  InnoDB  R-­‐tree  based  spaNal  indexes   –  Full  ACID,  MVCC,  &  transacNonal  support   –  Index  records  contain  minimum  bounding  box   •  GeoHash   •  GeoJSON   •  Helper  funcNons  such  as  ST_Distance_Sphere()  and  ST_MakeEnvelope()   MySQL  5.7:  GIS  Improvements     32  
  32. 32. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  NaNve  ParNNoning   –  Eliminates  previous  limitaNons   –  Eliminates  resource  usage  problems   –  Transportable  tablespace  support   •  NaNve  Full-­‐Text  Search     –  Including  full  CJK  support!   •  NaNve  SpaNal  Indexes   •  Transparent  page  compression     •  Support  for  32K  and  64K  pages   –  Use  with  transparent  page  compression  for   very  high  compression  raNos   •  General  TABLESPACE  support     –  Store  mulNple  tables  in  user  defined  shared   tablespaces     •  Support  for  MySQL  Group  ReplicaNon   –  High  priority  transacNons   •  Improved  support  for  cache  preloading   –  Load  your  horest  data  loaded  at  startup   •  Configurable  fill-­‐factor     –  Allows  for  improvements  in  storage  footprint   •  Improved  bulk-­‐data  load  performance   MySQL  5.7:  InnoDB  Improvements     33  
  33. 33. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB  –  Always  Online     •  Resize  the  InnoDB  Buffer  Pool  online     – Allows  DBAs  to  tune  the  buffer  size  without  any  downNme   – Adapt  in  real-­‐Nme  to  changes  in  database  usage  parerns   •  Separate  UNDO  tablespace   – With  automaNc  online  truncaNon     •  AddiNonal  Online  ALTER  TABLE  support   – Enlarge  VARCHAR,  Rename  Index   •  Dynamic  configuraNon   – Making  exisNng  se}ngs  dynamically  configurable   – As  a  design  principle  for  new  features  &  se}ngs   34  
  34. 34. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  InnoDB  -­‐  Bulk  Load  for  Create  Index       •  Much  faster  INDEX  creaNon  and  bulk  loads     •  Sorted  index  builds,  done  from  the  borom-­‐up   – Improves  speed  by  increasing  locality  and  decreasing  node  spli}ng   •  Pages  are  compressed  only  when  full   •  New  innodb_fill_factor  opNon  controls  free  space  le{  in  each  page   •  Performance  results  show   – 2-­‐3x  performance  improvement  for  ADD/CREATE  INDEX  operaNons   •  Up  to  500x  improvement  with  larger  -­‐-­‐innodb_sort_buffer_size  values   – 2-­‐5%  improvement  for  standard  INSERT  operaNons     35  
  35. 35. 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   •  OpNmize  DML  operaNons   – No  REDO  logging,  no  change  buffering,  less  locking   •  New  intrinsic  temporary  tables   – Specialized  temporary  tables  with  tailored  ACID/MVCC  semanNcs   – Light  weight  and  ultra-­‐fast,  great  for  intermediate  query  execuNon  operaNons   •  InnoDB  as  default  storage  engine  for  disk  based  temp  tables   – OpNmizer  switched  from  MyISAM  to  InnoDB  (faster)  for  internal  temp  tables   36  
  36. 36. 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   – NaNve  Japanese  focused  language  support   •  Easily  customized     – Token  sizes,  stop  words,  …   •  Supports  advanced  searches     – BOOLEAN  MODE,  NATURAL  LANGUAGE  MODE,  with  Ranking  
  37. 37. 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  enNrely  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   38   labs.mysql.com  
  38. 38. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Syslog  Support  for  Linux/Unix  pla€orms       •  NaNve  support  for  syslog   •  Simple  opNon  to  (re)direct  log  output  to  naNve  syslog  facility   •  Start-­‐up  server  configuraNon  opNon   •  Dynamically  in  the  running  server   –   System  variable  log_syslog  (ON/OFF,  defaults  to  OFF).   Thank  you,  Simon  Mudd  at  booking.com  
  39. 39. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Security  -­‐  EncrypNon,  Passwords,  InstallaNon     •  AES  256  EncrypNon     – Default  in  MySQL  5.7     •  Password  rotaNon  policies   – Can  be  set  globally,  and  at  the  user  level   •  Deployment:  enable  secure  unarended  install  by  default   – Random  password  set  on  install   – Remove  anonymous  accounts   – Deployment  without  test  account,  schema,  demo  files   •  Easier  instance  iniNalizaNon  and  setup:  mysqld  –iniNalize   •  New  detecNon  and  support  for  systemd     40  
  40. 40. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  Security  –  SSL,  Proxy  User     •  SSL   – Enabled  by  default   – Auto-­‐detecNon  of  exisNng  keys  and  certs   – Auto  generaNon  of  keys  and  certs  when  needed     – New  helper  uNlity:  mysql_ssl_rsa_setup   •  Extended  Proxy  User  Support   – Added  Built-­‐in  AuthenNcaNon  Plugins  support  for  Proxy  Users   – Allows  mulNple  users  to  share  a  single  set  of  managed  privileges   41  
  41. 41. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  GTID  enhancements   –  On-­‐line,  phased  deployment  of  GTIDs   –  Binary  logging  on  slave  now  opNonal   •  Enhanced  Semi-­‐synchronous  replicaNon   –  Write  guaranteed  to  be  received  by  slave   before  being  observed  by  clients  of  the  master   –  OpNon  to  wait  on  Acks  from  mulNple  slaves   •  MulN-­‐Source  ReplicaNon   –  Consolidate  updates  from  mulNple  Masters   into  one  Slave   •  Dynamic  slave  filters   •  8-­‐10x  Faster  slave  throughput   –  O{en  removes  slave  as  a  borleneck;  keep  pace   with  master  with  8+  slave  threads   –  OpNon  to  preserve  Commit  order   –  AutomaNc  slave  transacNon  retries     MySQL  5.7:  ReplicaNon  Improvements     42   0%# 50%# 100%# 150%# 200%# 250%# 1# 8# 24# 48# Slave#Threads# Slave#throughput#vs.#96#Thread#Master#
  42. 42. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  MulN-­‐Source  ReplicaNon   – Consolidate  updates  from  mulNple   Masters  into  one  Slave   •  Consolidated  view  of  all  shards   •  More  flexible  topologies   •  Centralized  point  for  backups   – CompaNble  with  Semi-­‐Sync  ReplicaNon   &  enhanced  MTS   •  Performance  Schema  tables  for   monitoring  slave   •  Online  OperaNons:  Dynamic   ReplicaNon  Filters,  switch  master   MySQL  5.7:  ReplicaNon  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  
  43. 43. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   •  MulN-­‐master  update  anywhere   –  Conflict  detecNon  and  resoluNon  (transacNon  rollback)   –  OpNmisNc  State  Machine  ReplicaNon   •  AutomaNc  group  membership  management  and  failure   detecNon   –  No  need  for  server  fail-­‐over   –  ElasNc  scale  out/in   –  No  single  point  of  failure   –  AutomaNc  reconfiguraNon   •  Well  integrated   –  InnoDB   –  GTID-­‐based  replicaNon   –  PERFORMANCE_SCHEMA   EAF:  Group  ReplicaNon     ApplicaNon   MySQL  Masters   ReplicaNon     Plugin   API   MySQL   Server   Group  Comms   labs.mysql.com  
  44. 44. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Fabric  1.5   •  High  Availability   –  Server  monitoring  with  auto-­‐promoNon  and   transparent  applicaNon  failover   •  OpNonally  scale-­‐out  through  sharding   –  ApplicaNon  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,  borleneck-­‐free   •  Server  provisioning  using  OpenStack  etc.   High  Availability  +  Sharding-­‐Based  Scale-­‐out   MySQL  Fabric   Connector   ApplicaNon   Read-­‐slaves   mappings   SQL   HA  group   Read-­‐slaves   HA  group   Connector   ApplicaNon   GA  
  45. 45. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Workbench  6.3     •  Fabric     – Add  node,  browse,  view,  connect   •  Performance  Dashboard     – Performance  Schema  Reports  &  Graphs   •  Visual  Explain   •  GIS  Viewer   •  MigraNon     – New  Microso{  Access     – Microso{  SQL  Server,  Sybase,     PostgreSQL,  SQLite     GA   46   •  New  Easy  to  Use  Wizards  for   – Fast  Data  MigraNon   – Table<-­‐>File  Data  Import/Export  (like  Excel)   – SSL  CerNficate  CreaNon    
  46. 46. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  on  Windows   •  MySQL  Installer  for  Windows   •  MySQL  Workbench   •  MySQL  MigraNon  Wizard   –  Microso{  SQL  Server   –  Microso{  Access   •  MySQL  for  Visual  Studio   •  MySQL  for  Excel   •  MySQL  NoNfier   •  MySQL  Connector/.Net   •  MySQL  Connector/ODBC  
  47. 47. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  Repos   •  DistribuNons   –  Oracle,  Red  Hat,  CentOS     –  Fedora   –  Ubuntu,  Debian   –  SUSE   •  Official  MySQL  Docker  Image  from  Oracle   •  Coming  Soon   –  Preconfigured  Containers   –  Improved  support  for  popular  DevOps   deployment  tools   hrps://dev.mysql.com/downloads/repo         MySQL  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   –  New  Pull  Requests     hrps://github.com/mysql         48  
  48. 48. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   MySQL  5.7:  AddiNonal  Info     •  hrp://mysqlserverteam.com/whats-­‐new-­‐in-­‐mysql-­‐5-­‐7-­‐first-­‐release-­‐candidate/   •  hrp://mysqlserverteam.com/json-­‐labs-­‐release-­‐overview/   •  hrp://mysqlserverteam.com/?s=query+rewrite   •  hrp://mysqlserverteam.com/category/performance/opNmizer/   •  hrp://mysqlserverteam.com/category/innodb/   •  hrp://mysqlserverteam.com/category/mysql/performance-­‐schema/   •  hrp://mysqlserverteam.com/category/gis/   •  hrp://mysqlserverteam.com/category/full-­‐text-­‐search/   •  hrp://mysqlserverteam.com/category/dicNonary/   •  hrp://dev.mysql.com/doc/refman/5.7/en/   49  

×