SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
MySQL 5.7 in a Nutshell
Alexander Rubin
Principal Architect, Percona
December 6, 2015
www.percona.com
About Me
•  Working with MySQL for over 10 years
–  Started at MySQL AB, then Sun Microsystems,
–  then Oracle (MySQL Consulting)
–  Joined Percona 2 years ago
My name is Alexander Rubin
https://www.linkedin.com/in/alexanderrubin
www.percona.com
Performance and Scalability
–  Enhanced Speed: MySQL 5.7 delivered 1,600,000 queries per
second (QPS) – 3x faster than MySQL 5.6.
–  Optimized InnoDB: New capabilities include increased
performance and concurrency
–  More Robust Replication:
•  multi-source replication
•  enhanced Global Transaction Identifiers (GTIDs)
•  improved multi-threaded slaves
–  Enhanced Optimizer: A new dynamic cost model provides
better query performance and greater user control.
Agenda: New MySQL 5.7 features
www.percona.com
Manageability enhancements
§  JSON Data Type and Calculated Fields: Allows for efficient and
flexible storage, search, and manipulation of schema-less data.
§  Performance Schema: Enables instrumentation for memory,
transactions, stored routines, prepared statements, replication,
and locks.
§  MySQL SYS Schema: Provides helper objects that answer
common performance, health, usage, and monitoring questions.
§  Improved Security: Delivers easier and safer instance
initialization, setup and management.
§  Expanded Geographic Information System (GIS) Support:
Spatial index support in InnoDB, GeoJSON, and GeoHash.
Agenda: New MySQL 5.7 features
www.percona.com
MySQL 5.7 Performance Improvements
Sysbench Becnhmark
*Information from Oracle OpenWorld presentation by Geir Hoydalsvik
Starts with 8 Threads
What about 2-4 threads?
www.percona.com
MySQL 5.7: Single-threaded workload
§  Multi-threaded workload looks great
§  Single-threaded workload shows some regression
https://bugs.mysql.com/bug.php?id=68825
http://smalldatum.blogspot.co.uk/2014/10/single-thread-performance-in-mysql-575.html
www.percona.com
MySQL 5.7: InnoDB, NoSQL With Memcached
*Information from Oracle OpenWorld presentation by Geir Hoydalsvik
www.percona.com
Sysbench OLTP Read Write
*Information from Oracle OpenWorld presentation by Geir Hoydalsvik
www.percona.com
InnoDB vs. MyISAM in v. 5.7
Feature MyISAM InnoDB
Full Text Indexes yes Since MySQL 5.6
Portable tables
(tablespaces)
yes Since MySQL 5.6
Spatial Indexes/RTREE
(GIS)
yes Since MySQL 5.7
Last update for table yes Since MySQL 5.7
(http://dev.mysql.com/worklog/task/?
id=6658)
Suitable for temp tables yes Since MySQL 5.7
Also complex selects uses
InnoDB ondisk temp tables
Fast count(*) yes *Faster in MySQL 5.7 but
does not store counter
www.percona.com
–  Performance: Buffer pool improvements
–  Performance: Better Redo log handling and better index->lock handling
–  Performance: DDL & Truncate improvements
–  Performance: Temporary Table Optimizations
–  Feature: Native Partitioning for InnoDB
–  Feature: Dynamic buffer pool size re-size, more online alter table ops
–  Feature: UNDO Log Space Management
–  Feature: Transparent PageIO Compression
–  Feature: GIS indexes
–  Miscellaneous
•  Implement update_time for InnoDB tables
•  Improve select count(*) performance by using handler::records();
•  Improve recovery, redo log tablespace meta data changes
InnoDB Improvements Overview
www.percona.com
InnoDB: Online Operations
•  Resize the InnoDB Buffer Pool online
•  More Online ALTER TABLE operations
•  Enlarge VARCHAR, Rename Index
•  More dynamic configuration variables
•  New variables are dynamic
•  Work to make existing variables dynamically
settable
www.percona.com
§  May be useful in virtual enviroments where you
can resize RAM online
innodb_buffer_pool_chunk_size – resize done in
chunk size
§  Example:
mysql>	
  SET	
  GLOBAL	
  
innodb_buffer_pool_size=4*1024*1024*102
4;	
  -­‐-­‐	
  4G	
  
http://dev.mysql.com/doc/refman/5.7/en/
innodb-­‐buffer-­‐pool-­‐online-­‐resize.html	
  	
  
Dynamic buffer pool re-size
www.percona.com
InnoDB - Bulk Load for Create
Index
•  Much faster INDEX creation and bulk loads
•  Performance results show
•  2-3x performance improvement for ADD/CREATE
INDEX operations
•  2-5% improvement for standard INSERT operations
www.percona.com
InnoDB Temporary Tables
•  New separate tablespace for temporary tables
•  Optimize DML operations
•  No REDO logging, no change buffering, less locking
•  InnoDB storage engine is used for on-disk
internal temporary tables
•  Complex select requiring ondisk temp tables will now
use InnoDB by default (controlled by
internal_tmp_disk_storage_engine variable)
http://dev.mysql.com/doc/refman/5.7/en/server-system-
variables.html#sysvar_internal_tmp_disk_storage_engine
http://mysqlserverteam.com/mysql-5-7-innodb-intrinsic-tables/
www.percona.com
Transparent Page Compression
•  Transparent Page Level Compression
•  Happens transparently in background threads
•  For supported Linux kernels and filesystems
•  Uses sparse file and "hole punching" support
•  Reduces IO
Applies to all InnoDB data, including the system tablespace and
UNDO logs
But – many file systems do not support large number of "holes" well
https://dev.mysql.com/doc/refman/5.7/en/innodb-page-
compression.html
www.percona.com
GIS - InnoDB Spatial Indexes
–  Full transactional
support
–  Only supports 2D data
for now
•  Use helper functions
for distance
calculations
*Graphics from Oracle OpenWorld presentation
by Geir Hoydalsvik
www.percona.com
•  GeoHash
–  Quick lookups for exact matches
–  Not very accurate for proximity searches
•  GeoJSON
•  Helper functions (ST_Distance_Sphere)
GIS - Additional Features
www.percona.com
mysql>	
  SELECT	
  shape	
  into	
  @zip_shape	
  FROM	
  zcta.tl_2013_us_zcta510	
  	
  
WHERE	
  zcta5ce10='27701’;	
  
Query	
  OK,	
  1	
  row	
  affected	
  (0.20	
  sec)	
  
	
  
mysql>	
  SELECT	
  name,	
  	
  
	
  	
  	
  	
  	
  	
  	
  ST_Distance_Sphere(shape,	
  st_centroid(@zip_shape)	
  )	
  as	
  dist,	
  	
  
	
  	
  	
  	
  	
  	
  	
  ST_AsGeoJSON(shape)	
  as	
  GeoJSON,	
  
	
  	
  	
  	
  	
  	
  	
  ST_GeoHash(shape,	
  16)	
  as	
  GeoHash	
  
	
  	
  	
  	
  	
  	
  	
  FROM	
  points	
  	
  
	
  	
  	
  	
  	
  	
  	
  WHERE	
  ST_Within(shape,	
  @zip_shape)	
  	
  
	
  	
  	
  	
  	
  	
  	
  and	
  other_tags	
  like	
  '%"amenity"=>"cafe"%'	
  LIMIT	
  1G	
  
	
  
***************************	
  1.	
  row	
  ***************************	
  
	
  	
  	
  name:	
  Blue	
  Coffee	
  Cafe	
  
	
  	
  	
  dist:	
  374.9045320478079	
  
GeoJSON:	
  {"type":	
  "Point",	
  "coordinates":	
  [-­‐78.9013567,	
  35.996332]}	
  
GeoHash:	
  dnruu8cvc4sk26qz	
  
1	
  row	
  in	
  set	
  (0.02	
  sec)	
  
	
  
	
  
GIS - Example
www.percona.com
Generated (Virtual) Columns
CREATE	
  TABLE	
  `ontime`	
  (	
  
	
  	
  `id`	
  int(11)	
  NOT	
  NULL	
  AUTO_INCREMENT,	
  
	
  	
  `YearD`	
  year(4)	
  NOT	
  NULL,	
  
	
  	
  `FlightDate`	
  datetime	
  DEFAULT	
  NULL,	
  
	
  	
  `Carrier`	
  char(2)	
  DEFAULT	
  NULL,	
  
	
  	
  `OriginAirportID`	
  int(11)	
  DEFAULT	
  NULL,	
  
	
  	
  `OriginCityName`	
  varchar(100)	
  DEFAULT	
  NULL,	
  
	
  	
  `OriginState`	
  char(2)	
  DEFAULT	
  NULL,	
  
	
  	
  `DestAirportID`	
  int(11)	
  DEFAULT	
  NULL,	
  
	
  	
  `DestCityName`	
  varchar(100)	
  DEFAULT	
  NULL,	
  
	
  	
  `DestState`	
  char(2)	
  DEFAULT	
  NULL,	
  
...	
  
`Flight_dayofweek`	
  tinyint(4)	
  	
  
GENERATED	
  ALWAYS	
  AS	
  (dayofweek(FlightDate))	
  VIRTUAL,	
  	
  	
  
PRIMARY	
  KEY	
  (`id`)	
  
)	
  ENGINE=InnoDB;	
  
alter	
  table	
  ontime	
  add	
  key	
  (Flight_dayofweek);	
  
	
  
https://www.percona.com/blog/2015/04/29/generated-­‐virtual-­‐columns-­‐in-­‐
mysql-­‐5-­‐7-­‐labs/	
  
https://dev.mysql.com/worklog/task/?id=8114	
  
Does not store the column
But INDEX it
SELECT	
  Flight_dayofweek,	
  count(*)	
  	
  
FROM	
  ontime_sm_virtual	
  	
  	
  
GROUP	
  BY	
  Flight_dayofweek	
  
www.percona.com
mysql>	
  EXPLAIN	
  SELECT	
  carrier,	
  count(*)	
  	
  
	
  	
  	
  	
  	
  	
  	
  FROM	
  ontime_sm_virtual	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  WHERE	
  Flight_dayofweek	
  =	
  7	
  group	
  by	
  carrierG	
  
***************************	
  1.	
  row	
  ***************************	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  1	
  
	
  	
  select_type:	
  SIMPLE	
  
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  ontime_sm_virtual	
  
	
  	
  	
  partitions:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ref	
  
possible_keys:	
  Flight_dayofweek	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  Flight_dayofweek	
  
	
  	
  	
  	
  	
  	
  key_len:	
  2	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  const	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  165409	
  
	
  	
  	
  	
  	
  filtered:	
  100.00	
  
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  Using	
  where;	
  Using	
  temporary;	
  Using	
  filesort	
  
1	
  row	
  in	
  set,	
  1	
  warning	
  (0.00	
  sec)	
  
	
  
Using index
Generated (Virtual) Columns
www.percona.com
JSON Support
mysql>	
  create	
  table	
  json_test	
  (	
  
id	
  int	
  primary	
  key	
  auto_increment,	
  	
  
data	
  json	
  
)	
  engine=InnoDB;	
  
Query	
  OK,	
  0	
  rows	
  affected	
  (0.02	
  sec)	
  
	
  
	
  
mysql>	
  select	
  *	
  from	
  json_test	
  where	
  data-­‐>'$.type'	
  =	
  'Point'	
  limit	
  1;	
  
+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  id	
  |	
  data	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  1	
  |	
  {"type":	
  "Point",	
  "coordinates":	
  [-­‐87.9101245,	
  41.7585879]}	
  |	
  
+-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
	
  
	
  
	
  
	
  
	
  
Same as
JSON_EXTRACT(data,"$.type”)
www.percona.com
JSON Support: Indexes
mysql>	
  explain	
  select	
  *	
  from	
  json_test	
  where	
  data-­‐>'$.type'	
  =	
  'Point'	
  limit	
  1G	
  
***************************	
  1.	
  row	
  ***************************	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  1	
  
	
  	
  select_type:	
  SIMPLE	
  
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  json_test	
  
	
  	
  	
  partitions:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ALL	
  
possible_keys:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  NULL	
  
	
  	
  	
  	
  	
  	
  key_len:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  996823	
  
	
  	
  	
  	
  	
  filtered:	
  100.00	
  
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  Using	
  where	
  
	
  
mysql>	
  alter	
  table	
  json_test	
  	
  
add	
  data_type	
  varchar(255)	
  GENERATED	
  ALWAYS	
  AS	
  (data-­‐>'$.type')	
  VIRTUAL;	
  
Query	
  OK,	
  0	
  rows	
  affected	
  (0.00	
  sec)	
  
Records:	
  0	
  	
  Duplicates:	
  0	
  	
  Warnings:	
  0	
  
	
  
mysql>	
  alter	
  table	
  json_test	
  add	
  key	
  (data_type);	
  
Query	
  OK,	
  0	
  rows	
  affected	
  (2.51	
  sec)	
  
Records:	
  0	
  	
  Duplicates:	
  0	
  	
  Warnings:	
  0	
  
	
  
	
  
www.percona.com
JSON Support: Indexes
mysql>	
  explain	
  select	
  *	
  from	
  json_test	
  where	
  data-­‐>'$.type'	
  =	
  'Point'	
  limit	
  1G	
  
***************************	
  1.	
  row	
  ***************************	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  1	
  
	
  	
  select_type:	
  SIMPLE	
  
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  json_test	
  
	
  	
  	
  partitions:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ref	
  
possible_keys:	
  data_type	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  data_type	
  
	
  	
  	
  	
  	
  	
  key_len:	
  258	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  const	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  1	
  
	
  	
  	
  	
  	
  filtered:	
  100.00	
  
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  NULL	
  
	
  
	
  
	
  
	
  
www.percona.com
Replication Improvements
Multi-Source Replication
(slave can have multiple masters)
Better Multi-Threaded Slaves
(does not require multiple databases)
Better GTID
(online GTID deployment)
Group Replication Plugin
(virtual synchronous replication)
www.percona.com
MySQL Replication Topologies
Master > Slave
Masters > Slave (Multi-Source), Since 5.7
Master > Slaves
Master > Slave > Slaves
•  Now 1 replication slave can have many master servers!
•  Important for BI/Data Science/Ad-hoc analytics
www.percona.com
MySQL 5.7: Optimizer
Improvements
•  UNION ALL queries no longer use temporary
tables
•  Improved optimizations for queries with IN
expressions
•  Improved optimizations for full-text queries
•  More efficient sorting
www.percona.com
*************************** 1. row ***************************
table: ontime_2012
key: covered
... Removed ...
Extra: Using where; Using index
*************************** 2. row ***************************
table: ontime_2012
key: covered
... Removed ...
Extra: Using where; Using index
*************************** 3. row ***************************
id: NULL
select_type: UNION RESULT
table: <union1,2>
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
Extra: Using temporary
Temporary Table for UNION ALL
5.6: Will create temp table (as shown)
5.7: Do not materialize in temporary
tables (unless used for sorting) rows
are sent directly to client
5.7: Client will receive the first row
faster
5.7: Less memory and disk
consumption
www.percona.com
Optimizations for IN Expressions
•  MySQL 5.7: IN queries with row value expressions
executed using range scans.
•  Imagine that you got list of IDs from Full Text Search solution (solr/
elasticsearch/sphinx)
•  Now I need to get the actual documents
	
  
	
  
mysql>	
  select	
  name,	
  other_tags	
  from	
  poi_info	
  	
  	
  
WHERE	
  osm_id	
  in	
  (367909272,	
  367841688,	
  493001986,	
  ...);	
  
	
  
www.percona.com
Performance Schema
improvements
Memory
Instrumentations
–  Memory used
(bytes)
–  Operation counts
–  Type of memory
used (caches,
internal buffers,
etc)
Statement
Instrumentations
–  Stored
Procedures
–  Stored Functions
–  Prepared
Statements
–  Transactions
Other
Instrumentation
–  Replication slave
status
–  MDL lock
instrumentation
–  User variables
per thread
–  Server stage
tracking
–  Track long
running SQL
www.percona.com
SYS Schema
Included in MySQL 5.7
Get the memory usage per user with SYS schema:
	
  
	
  
	
  
	
  
mysql>	
  update	
  
performance_schema.setup_instruments	
  	
  
set	
  enabled='YES',	
  timed='YES'	
  	
  
where	
  name	
  like	
  'memory/%';	
  
Query	
  OK,	
  375	
  rows	
  affected	
  (0.00	
  sec)	
  
Rows	
  matched:	
  375	
  	
  Changed:	
  375	
  	
  
Warnings:	
  0	
  
	
  
	
  
mysql>	
  select	
  *	
  from	
  
sys.memory_global_totalG	
  
***************************	
  1.	
  row	
  
***************************	
  
total_allocated:	
  90.20	
  MiB	
  
1	
  row	
  in	
  set	
  (0.01	
  sec)	
  
	
  
mysql>	
  select	
  *	
  from	
  
sys.memory_by_user_by_current_bytesG	
  
***************************	
  1.	
  row	
  
***************************	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  user:	
  root	
  
current_count_used:	
  42	
  
	
  current_allocated:	
  361.03	
  KiB	
  
	
  current_avg_alloc:	
  8.60	
  KiB	
  
	
  current_max_alloc:	
  248.04	
  KiB	
  
	
  	
  	
  total_allocated:	
  46.34	
  GiB	
  
***************************	
  2.	
  row	
  
***************************	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  user:	
  background	
  
current_count_used:	
  0	
  
	
  current_allocated:	
  0	
  bytes	
  
	
  current_avg_alloc:	
  0	
  bytes	
  
	
  current_max_alloc:	
  0	
  bytes	
  
	
  	
  	
  total_allocated:	
  14.72	
  KiB	
  
2	
  rows	
  in	
  set	
  (0.01	
  sec)	
  
www.percona.com
Improved MDL locking
•  Removes bottlenecks around DML access to a
single table
•  10% increased throughput in OLTP_RO/
POINT_SELECT sysbench
•  Optimized for typical DML heavy workloads
http://www.chriscalender.com/troubleshooting-waiting-for-table-metadata-lock-errors-
for-both-myisam-and-innodb-tables/
www.percona.com
Security - Encryption, Passwords,
Installation
•  Deployment: enable secure unattended install
by default
•  Random password set on install
•  Removed anonymous accounts
•  Deployment without test account, schema, demo
files
•  AES 256 Encryption
•  Password rotation policies
•  Can be set globally, and at the user level
www.percona.com
Explain on a Running Query
mysql>	
  show	
  processlistG	
  
...	
  
	
  	
  	
  	
  	
  Id:	
  8	
  
Command:	
  Query	
  
	
  	
  	
  Time:	
  90	
  
	
  	
  State:	
  Sending	
  data	
  
	
  	
  	
  Info:	
  select	
  count(*),	
  osm_id	
  from	
  points_new	
  group	
  by	
  osm_id	
  
	
  
mysql>	
  explain	
  for	
  connection	
  8G	
  	
  
***************************	
  1.	
  row	
  ***************************	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  id:	
  1	
  
	
  	
  select_type:	
  SIMPLE	
  
	
  	
  	
  	
  	
  	
  	
  	
  table:	
  points_new	
  
	
  	
  	
  partitions:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  type:	
  ALL	
  
possible_keys:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  key:	
  NULL	
  
	
  	
  	
  	
  	
  	
  key_len:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ref:	
  NULL	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  rows:	
  11368798	
  
	
  	
  	
  	
  	
  filtered:	
  100.00	
  
	
  	
  	
  	
  	
  	
  	
  	
  Extra:	
  Using	
  temporary;	
  Using	
  filesort	
  
	
  
Shows query plan on connection <id>
Applicable for SELECT/INSERT/
DELETE/UPDATE
www.percona.com
New Data Dictionary, New
Tablespace Management (future)
•  SaaS case: 50K databases inside single instance
•  ~ 1M tables = 2M files inside MySQL datadir
•  InnoDB tables replace .frm, .trg, .trn, .par files
•  Ability to create 1 tablespace for multiple tables
www.percona.com
FAQ
Q: Do you recommend upgrading to 5.7 right now?
A: As with all upgrades to a newer version it should be tested.
You can expect to see bugs.
Upgrade non-critical replication slaves first (i.e. reporting slaves)
Use pt-upgrade to test for any regressions
(https://www.percona.com/doc/percona-toolkit/2.2/pt-upgrade.html)
Q: When Percona Server 5.7 will be released as GA?
A: We expect to have a release around the end of January 2016
Please note that this date is approximate as there is always high risk
of a large amount of bugs to be discovered following a major release.
www.percona.com
Special Thanks
Mike Frank - Senior Product Manager, Oracle
Geir Høydalsvik - Software Development Director, Oracle
Presented “What’s New in MySQL 5.7”
Sunny Bains - Senior Engineering Manager, Oracle
Presented “MySQL 5.7: InnoDB—What’s New”
Mark Leith – Senior Software Development Manager, Oracle
Developer of SYS Schema
Chris Calender - Principal Support Engineer for MariaDB
Great blog posts explaining metadata locking
http://www.chriscalender.com/tracking-metadata-locks-mdl-in-mysql-5-7/
All Oracle MySQL Developers for the great MySQL 5.7 release!
www.percona.com
Thank you!
https://www.linkedin.com/in/alexanderrubin
Alexander Rubin

Más contenido relacionado

La actualidad más candente

MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 UpdatesDave Stokes
 
MySQL Enterprise Portfolio
MySQL Enterprise PortfolioMySQL Enterprise Portfolio
MySQL Enterprise PortfolioAbel Flórez
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014Dave Stokes
 
My sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlMy sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlsqlhjalp
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)Aurimas Mikalauskas
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2Morgan Tocker
 
MySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDBMySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDBMark Swarbrick
 
My sql crashcourse_2012
My sql crashcourse_2012My sql crashcourse_2012
My sql crashcourse_2012sqlhjalp
 
MySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summaryMySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summaryLouis liu
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best PracticesOlivier DASINI
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News Ted Wennmark
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesTarique Saleem
 
MySQL For Oracle Developers
MySQL For Oracle DevelopersMySQL For Oracle Developers
MySQL For Oracle DevelopersRonald Bradford
 
Mysql nowwhat
Mysql nowwhatMysql nowwhat
Mysql nowwhatsqlhjalp
 
2012 scale replication
2012 scale replication2012 scale replication
2012 scale replicationsqlhjalp
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015Mario Beck
 
AUSOUG Oracle Password Security
AUSOUG Oracle Password SecurityAUSOUG Oracle Password Security
AUSOUG Oracle Password SecurityStefan Oehrli
 
MySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMorgan Tocker
 
My sql 56_roadmap_april2012
My sql 56_roadmap_april2012My sql 56_roadmap_april2012
My sql 56_roadmap_april2012sqlhjalp
 
REST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using RESTREST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using RESTChristian Gohmann
 

La actualidad más candente (20)

MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 Updates
 
MySQL Enterprise Portfolio
MySQL Enterprise PortfolioMySQL Enterprise Portfolio
MySQL Enterprise Portfolio
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014
 
My sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlMy sql crashcourse_intro_kdl
My sql crashcourse_intro_kdl
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2
 
MySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDBMySQL Tech Tour 2015 - 5.7 InnoDB
MySQL Tech Tour 2015 - 5.7 InnoDB
 
My sql crashcourse_2012
My sql crashcourse_2012My sql crashcourse_2012
My sql crashcourse_2012
 
MySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summaryMySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summary
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best Practices
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New Features
 
MySQL For Oracle Developers
MySQL For Oracle DevelopersMySQL For Oracle Developers
MySQL For Oracle Developers
 
Mysql nowwhat
Mysql nowwhatMysql nowwhat
Mysql nowwhat
 
2012 scale replication
2012 scale replication2012 scale replication
2012 scale replication
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015
 
AUSOUG Oracle Password Security
AUSOUG Oracle Password SecurityAUSOUG Oracle Password Security
AUSOUG Oracle Password Security
 
MySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMySQL Performance Metrics that Matter
MySQL Performance Metrics that Matter
 
My sql 56_roadmap_april2012
My sql 56_roadmap_april2012My sql 56_roadmap_april2012
My sql 56_roadmap_april2012
 
REST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using RESTREST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using REST
 

Similar a MySQL 5.7 in a Nutshell

Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013Jaime Crespo
 
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...Insight Technology, Inc.
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1MariaDB plc
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1MariaDB plc
 
What’s New in MariaDB Server 10.2
What’s New in MariaDB Server 10.2What’s New in MariaDB Server 10.2
What’s New in MariaDB Server 10.2MariaDB plc
 
MySQL Cluster 7.3 Performance Tuning - Severalnines Slides
MySQL Cluster 7.3 Performance Tuning - Severalnines SlidesMySQL Cluster 7.3 Performance Tuning - Severalnines Slides
MySQL Cluster 7.3 Performance Tuning - Severalnines SlidesSeveralnines
 
PostgreSQL 9.5 - Major Features
PostgreSQL 9.5 - Major FeaturesPostgreSQL 9.5 - Major Features
PostgreSQL 9.5 - Major FeaturesInMobi Technology
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMark Swarbrick
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevAltinity Ltd
 
10 Reasons to Start Your Analytics Project with PostgreSQL
10 Reasons to Start Your Analytics Project with PostgreSQL10 Reasons to Start Your Analytics Project with PostgreSQL
10 Reasons to Start Your Analytics Project with PostgreSQLSatoshi Nagayasu
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
Query Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksQuery Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksMYXPLAIN
 
Star schema my sql
Star schema   my sqlStar schema   my sql
Star schema my sqldeathsubte
 
MySQL 5.7 New Features for Developers
MySQL 5.7 New Features for DevelopersMySQL 5.7 New Features for Developers
MySQL 5.7 New Features for DevelopersZohar Elkayam
 
MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527Saewoong Lee
 
MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015Dave Stokes
 
MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMorgan Tocker
 

Similar a MySQL 5.7 in a Nutshell (20)

Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
Query Optimization with MySQL 5.6: Old and New Tricks - Percona Live London 2013
 
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
 
What’s New in MariaDB Server 10.2
What’s New in MariaDB Server 10.2What’s New in MariaDB Server 10.2
What’s New in MariaDB Server 10.2
 
MySQL Cluster 7.3 Performance Tuning - Severalnines Slides
MySQL Cluster 7.3 Performance Tuning - Severalnines SlidesMySQL Cluster 7.3 Performance Tuning - Severalnines Slides
MySQL Cluster 7.3 Performance Tuning - Severalnines Slides
 
PostgreSQL 9.5 - Major Features
PostgreSQL 9.5 - Major FeaturesPostgreSQL 9.5 - Major Features
PostgreSQL 9.5 - Major Features
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats new
 
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander ZaitsevMigration to ClickHouse. Practical guide, by Alexander Zaitsev
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
 
Apache Cassandra at Macys
Apache Cassandra at MacysApache Cassandra at Macys
Apache Cassandra at Macys
 
10 Reasons to Start Your Analytics Project with PostgreSQL
10 Reasons to Start Your Analytics Project with PostgreSQL10 Reasons to Start Your Analytics Project with PostgreSQL
10 Reasons to Start Your Analytics Project with PostgreSQL
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
Query Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksQuery Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New Tricks
 
Star schema my sql
Star schema   my sqlStar schema   my sql
Star schema my sql
 
MySQL database
MySQL databaseMySQL database
MySQL database
 
MySQLinsanity
MySQLinsanityMySQLinsanity
MySQLinsanity
 
MySQL 5.7 New Features for Developers
MySQL 5.7 New Features for DevelopersMySQL 5.7 New Features for Developers
MySQL 5.7 New Features for Developers
 
MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527
 
MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015MySQL Utilities -- PyTexas 2015
MySQL Utilities -- PyTexas 2015
 
MySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics ImprovementsMySQL 5.6 - Operations and Diagnostics Improvements
MySQL 5.6 - Operations and Diagnostics Improvements
 

Último

%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durbanmasabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 

Último (20)

%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 

MySQL 5.7 in a Nutshell

  • 1. MySQL 5.7 in a Nutshell Alexander Rubin Principal Architect, Percona December 6, 2015
  • 2. www.percona.com About Me •  Working with MySQL for over 10 years –  Started at MySQL AB, then Sun Microsystems, –  then Oracle (MySQL Consulting) –  Joined Percona 2 years ago My name is Alexander Rubin https://www.linkedin.com/in/alexanderrubin
  • 3. www.percona.com Performance and Scalability –  Enhanced Speed: MySQL 5.7 delivered 1,600,000 queries per second (QPS) – 3x faster than MySQL 5.6. –  Optimized InnoDB: New capabilities include increased performance and concurrency –  More Robust Replication: •  multi-source replication •  enhanced Global Transaction Identifiers (GTIDs) •  improved multi-threaded slaves –  Enhanced Optimizer: A new dynamic cost model provides better query performance and greater user control. Agenda: New MySQL 5.7 features
  • 4. www.percona.com Manageability enhancements §  JSON Data Type and Calculated Fields: Allows for efficient and flexible storage, search, and manipulation of schema-less data. §  Performance Schema: Enables instrumentation for memory, transactions, stored routines, prepared statements, replication, and locks. §  MySQL SYS Schema: Provides helper objects that answer common performance, health, usage, and monitoring questions. §  Improved Security: Delivers easier and safer instance initialization, setup and management. §  Expanded Geographic Information System (GIS) Support: Spatial index support in InnoDB, GeoJSON, and GeoHash. Agenda: New MySQL 5.7 features
  • 5. www.percona.com MySQL 5.7 Performance Improvements Sysbench Becnhmark *Information from Oracle OpenWorld presentation by Geir Hoydalsvik Starts with 8 Threads What about 2-4 threads?
  • 6. www.percona.com MySQL 5.7: Single-threaded workload §  Multi-threaded workload looks great §  Single-threaded workload shows some regression https://bugs.mysql.com/bug.php?id=68825 http://smalldatum.blogspot.co.uk/2014/10/single-thread-performance-in-mysql-575.html
  • 7. www.percona.com MySQL 5.7: InnoDB, NoSQL With Memcached *Information from Oracle OpenWorld presentation by Geir Hoydalsvik
  • 8. www.percona.com Sysbench OLTP Read Write *Information from Oracle OpenWorld presentation by Geir Hoydalsvik
  • 9. www.percona.com InnoDB vs. MyISAM in v. 5.7 Feature MyISAM InnoDB Full Text Indexes yes Since MySQL 5.6 Portable tables (tablespaces) yes Since MySQL 5.6 Spatial Indexes/RTREE (GIS) yes Since MySQL 5.7 Last update for table yes Since MySQL 5.7 (http://dev.mysql.com/worklog/task/? id=6658) Suitable for temp tables yes Since MySQL 5.7 Also complex selects uses InnoDB ondisk temp tables Fast count(*) yes *Faster in MySQL 5.7 but does not store counter
  • 10. www.percona.com –  Performance: Buffer pool improvements –  Performance: Better Redo log handling and better index->lock handling –  Performance: DDL & Truncate improvements –  Performance: Temporary Table Optimizations –  Feature: Native Partitioning for InnoDB –  Feature: Dynamic buffer pool size re-size, more online alter table ops –  Feature: UNDO Log Space Management –  Feature: Transparent PageIO Compression –  Feature: GIS indexes –  Miscellaneous •  Implement update_time for InnoDB tables •  Improve select count(*) performance by using handler::records(); •  Improve recovery, redo log tablespace meta data changes InnoDB Improvements Overview
  • 11. www.percona.com InnoDB: Online Operations •  Resize the InnoDB Buffer Pool online •  More Online ALTER TABLE operations •  Enlarge VARCHAR, Rename Index •  More dynamic configuration variables •  New variables are dynamic •  Work to make existing variables dynamically settable
  • 12. www.percona.com §  May be useful in virtual enviroments where you can resize RAM online innodb_buffer_pool_chunk_size – resize done in chunk size §  Example: mysql>  SET  GLOBAL   innodb_buffer_pool_size=4*1024*1024*102 4;  -­‐-­‐  4G   http://dev.mysql.com/doc/refman/5.7/en/ innodb-­‐buffer-­‐pool-­‐online-­‐resize.html     Dynamic buffer pool re-size
  • 13. www.percona.com InnoDB - Bulk Load for Create Index •  Much faster INDEX creation and bulk loads •  Performance results show •  2-3x performance improvement for ADD/CREATE INDEX operations •  2-5% improvement for standard INSERT operations
  • 14. www.percona.com InnoDB Temporary Tables •  New separate tablespace for temporary tables •  Optimize DML operations •  No REDO logging, no change buffering, less locking •  InnoDB storage engine is used for on-disk internal temporary tables •  Complex select requiring ondisk temp tables will now use InnoDB by default (controlled by internal_tmp_disk_storage_engine variable) http://dev.mysql.com/doc/refman/5.7/en/server-system- variables.html#sysvar_internal_tmp_disk_storage_engine http://mysqlserverteam.com/mysql-5-7-innodb-intrinsic-tables/
  • 15. www.percona.com Transparent Page Compression •  Transparent Page Level Compression •  Happens transparently in background threads •  For supported Linux kernels and filesystems •  Uses sparse file and "hole punching" support •  Reduces IO Applies to all InnoDB data, including the system tablespace and UNDO logs But – many file systems do not support large number of "holes" well https://dev.mysql.com/doc/refman/5.7/en/innodb-page- compression.html
  • 16. www.percona.com GIS - InnoDB Spatial Indexes –  Full transactional support –  Only supports 2D data for now •  Use helper functions for distance calculations *Graphics from Oracle OpenWorld presentation by Geir Hoydalsvik
  • 17. www.percona.com •  GeoHash –  Quick lookups for exact matches –  Not very accurate for proximity searches •  GeoJSON •  Helper functions (ST_Distance_Sphere) GIS - Additional Features
  • 18. www.percona.com mysql>  SELECT  shape  into  @zip_shape  FROM  zcta.tl_2013_us_zcta510     WHERE  zcta5ce10='27701’;   Query  OK,  1  row  affected  (0.20  sec)     mysql>  SELECT  name,                  ST_Distance_Sphere(shape,  st_centroid(@zip_shape)  )  as  dist,                  ST_AsGeoJSON(shape)  as  GeoJSON,                ST_GeoHash(shape,  16)  as  GeoHash                FROM  points                  WHERE  ST_Within(shape,  @zip_shape)                  and  other_tags  like  '%"amenity"=>"cafe"%'  LIMIT  1G     ***************************  1.  row  ***************************        name:  Blue  Coffee  Cafe        dist:  374.9045320478079   GeoJSON:  {"type":  "Point",  "coordinates":  [-­‐78.9013567,  35.996332]}   GeoHash:  dnruu8cvc4sk26qz   1  row  in  set  (0.02  sec)       GIS - Example
  • 19. www.percona.com Generated (Virtual) Columns CREATE  TABLE  `ontime`  (      `id`  int(11)  NOT  NULL  AUTO_INCREMENT,      `YearD`  year(4)  NOT  NULL,      `FlightDate`  datetime  DEFAULT  NULL,      `Carrier`  char(2)  DEFAULT  NULL,      `OriginAirportID`  int(11)  DEFAULT  NULL,      `OriginCityName`  varchar(100)  DEFAULT  NULL,      `OriginState`  char(2)  DEFAULT  NULL,      `DestAirportID`  int(11)  DEFAULT  NULL,      `DestCityName`  varchar(100)  DEFAULT  NULL,      `DestState`  char(2)  DEFAULT  NULL,   ...   `Flight_dayofweek`  tinyint(4)     GENERATED  ALWAYS  AS  (dayofweek(FlightDate))  VIRTUAL,       PRIMARY  KEY  (`id`)   )  ENGINE=InnoDB;   alter  table  ontime  add  key  (Flight_dayofweek);     https://www.percona.com/blog/2015/04/29/generated-­‐virtual-­‐columns-­‐in-­‐ mysql-­‐5-­‐7-­‐labs/   https://dev.mysql.com/worklog/task/?id=8114   Does not store the column But INDEX it SELECT  Flight_dayofweek,  count(*)     FROM  ontime_sm_virtual       GROUP  BY  Flight_dayofweek  
  • 20. www.percona.com mysql>  EXPLAIN  SELECT  carrier,  count(*)                  FROM  ontime_sm_virtual                    WHERE  Flight_dayofweek  =  7  group  by  carrierG   ***************************  1.  row  ***************************                        id:  1      select_type:  SIMPLE                  table:  ontime_sm_virtual        partitions:  NULL                    type:  ref   possible_keys:  Flight_dayofweek                      key:  Flight_dayofweek              key_len:  2                      ref:  const                    rows:  165409            filtered:  100.00                  Extra:  Using  where;  Using  temporary;  Using  filesort   1  row  in  set,  1  warning  (0.00  sec)     Using index Generated (Virtual) Columns
  • 21. www.percona.com JSON Support mysql>  create  table  json_test  (   id  int  primary  key  auto_increment,     data  json   )  engine=InnoDB;   Query  OK,  0  rows  affected  (0.02  sec)       mysql>  select  *  from  json_test  where  data-­‐>'$.type'  =  'Point'  limit  1;   +-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  id  |  data                                                                                                                |   +-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    1  |  {"type":  "Point",  "coordinates":  [-­‐87.9101245,  41.7585879]}  |   +-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+             Same as JSON_EXTRACT(data,"$.type”)
  • 22. www.percona.com JSON Support: Indexes mysql>  explain  select  *  from  json_test  where  data-­‐>'$.type'  =  'Point'  limit  1G   ***************************  1.  row  ***************************                        id:  1      select_type:  SIMPLE                  table:  json_test        partitions:  NULL                    type:  ALL   possible_keys:  NULL                      key:  NULL              key_len:  NULL                      ref:  NULL                    rows:  996823            filtered:  100.00                  Extra:  Using  where     mysql>  alter  table  json_test     add  data_type  varchar(255)  GENERATED  ALWAYS  AS  (data-­‐>'$.type')  VIRTUAL;   Query  OK,  0  rows  affected  (0.00  sec)   Records:  0    Duplicates:  0    Warnings:  0     mysql>  alter  table  json_test  add  key  (data_type);   Query  OK,  0  rows  affected  (2.51  sec)   Records:  0    Duplicates:  0    Warnings:  0      
  • 23. www.percona.com JSON Support: Indexes mysql>  explain  select  *  from  json_test  where  data-­‐>'$.type'  =  'Point'  limit  1G   ***************************  1.  row  ***************************                        id:  1      select_type:  SIMPLE                  table:  json_test        partitions:  NULL                    type:  ref   possible_keys:  data_type                      key:  data_type              key_len:  258                      ref:  const                    rows:  1            filtered:  100.00                  Extra:  NULL          
  • 24. www.percona.com Replication Improvements Multi-Source Replication (slave can have multiple masters) Better Multi-Threaded Slaves (does not require multiple databases) Better GTID (online GTID deployment) Group Replication Plugin (virtual synchronous replication)
  • 25. www.percona.com MySQL Replication Topologies Master > Slave Masters > Slave (Multi-Source), Since 5.7 Master > Slaves Master > Slave > Slaves •  Now 1 replication slave can have many master servers! •  Important for BI/Data Science/Ad-hoc analytics
  • 26. www.percona.com MySQL 5.7: Optimizer Improvements •  UNION ALL queries no longer use temporary tables •  Improved optimizations for queries with IN expressions •  Improved optimizations for full-text queries •  More efficient sorting
  • 27. www.percona.com *************************** 1. row *************************** table: ontime_2012 key: covered ... Removed ... Extra: Using where; Using index *************************** 2. row *************************** table: ontime_2012 key: covered ... Removed ... Extra: Using where; Using index *************************** 3. row *************************** id: NULL select_type: UNION RESULT table: <union1,2> type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: NULL Extra: Using temporary Temporary Table for UNION ALL 5.6: Will create temp table (as shown) 5.7: Do not materialize in temporary tables (unless used for sorting) rows are sent directly to client 5.7: Client will receive the first row faster 5.7: Less memory and disk consumption
  • 28. www.percona.com Optimizations for IN Expressions •  MySQL 5.7: IN queries with row value expressions executed using range scans. •  Imagine that you got list of IDs from Full Text Search solution (solr/ elasticsearch/sphinx) •  Now I need to get the actual documents     mysql>  select  name,  other_tags  from  poi_info       WHERE  osm_id  in  (367909272,  367841688,  493001986,  ...);    
  • 29. www.percona.com Performance Schema improvements Memory Instrumentations –  Memory used (bytes) –  Operation counts –  Type of memory used (caches, internal buffers, etc) Statement Instrumentations –  Stored Procedures –  Stored Functions –  Prepared Statements –  Transactions Other Instrumentation –  Replication slave status –  MDL lock instrumentation –  User variables per thread –  Server stage tracking –  Track long running SQL
  • 30. www.percona.com SYS Schema Included in MySQL 5.7 Get the memory usage per user with SYS schema:         mysql>  update   performance_schema.setup_instruments     set  enabled='YES',  timed='YES'     where  name  like  'memory/%';   Query  OK,  375  rows  affected  (0.00  sec)   Rows  matched:  375    Changed:  375     Warnings:  0       mysql>  select  *  from   sys.memory_global_totalG   ***************************  1.  row   ***************************   total_allocated:  90.20  MiB   1  row  in  set  (0.01  sec)     mysql>  select  *  from   sys.memory_by_user_by_current_bytesG   ***************************  1.  row   ***************************                              user:  root   current_count_used:  42    current_allocated:  361.03  KiB    current_avg_alloc:  8.60  KiB    current_max_alloc:  248.04  KiB        total_allocated:  46.34  GiB   ***************************  2.  row   ***************************                              user:  background   current_count_used:  0    current_allocated:  0  bytes    current_avg_alloc:  0  bytes    current_max_alloc:  0  bytes        total_allocated:  14.72  KiB   2  rows  in  set  (0.01  sec)  
  • 31. www.percona.com Improved MDL locking •  Removes bottlenecks around DML access to a single table •  10% increased throughput in OLTP_RO/ POINT_SELECT sysbench •  Optimized for typical DML heavy workloads http://www.chriscalender.com/troubleshooting-waiting-for-table-metadata-lock-errors- for-both-myisam-and-innodb-tables/
  • 32. www.percona.com Security - Encryption, Passwords, Installation •  Deployment: enable secure unattended install by default •  Random password set on install •  Removed anonymous accounts •  Deployment without test account, schema, demo files •  AES 256 Encryption •  Password rotation policies •  Can be set globally, and at the user level
  • 33. www.percona.com Explain on a Running Query mysql>  show  processlistG   ...            Id:  8   Command:  Query        Time:  90      State:  Sending  data        Info:  select  count(*),  osm_id  from  points_new  group  by  osm_id     mysql>  explain  for  connection  8G     ***************************  1.  row  ***************************                        id:  1      select_type:  SIMPLE                  table:  points_new        partitions:  NULL                    type:  ALL   possible_keys:  NULL                      key:  NULL              key_len:  NULL                      ref:  NULL                    rows:  11368798            filtered:  100.00                  Extra:  Using  temporary;  Using  filesort     Shows query plan on connection <id> Applicable for SELECT/INSERT/ DELETE/UPDATE
  • 34. www.percona.com New Data Dictionary, New Tablespace Management (future) •  SaaS case: 50K databases inside single instance •  ~ 1M tables = 2M files inside MySQL datadir •  InnoDB tables replace .frm, .trg, .trn, .par files •  Ability to create 1 tablespace for multiple tables
  • 35. www.percona.com FAQ Q: Do you recommend upgrading to 5.7 right now? A: As with all upgrades to a newer version it should be tested. You can expect to see bugs. Upgrade non-critical replication slaves first (i.e. reporting slaves) Use pt-upgrade to test for any regressions (https://www.percona.com/doc/percona-toolkit/2.2/pt-upgrade.html) Q: When Percona Server 5.7 will be released as GA? A: We expect to have a release around the end of January 2016 Please note that this date is approximate as there is always high risk of a large amount of bugs to be discovered following a major release.
  • 36. www.percona.com Special Thanks Mike Frank - Senior Product Manager, Oracle Geir Høydalsvik - Software Development Director, Oracle Presented “What’s New in MySQL 5.7” Sunny Bains - Senior Engineering Manager, Oracle Presented “MySQL 5.7: InnoDB—What’s New” Mark Leith – Senior Software Development Manager, Oracle Developer of SYS Schema Chris Calender - Principal Support Engineer for MariaDB Great blog posts explaining metadata locking http://www.chriscalender.com/tracking-metadata-locks-mdl-in-mysql-5-7/ All Oracle MySQL Developers for the great MySQL 5.7 release!