SlideShare a Scribd company logo
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Solving Performance Problems
Using MySQL Enterprise Monitor
Mark Matthews
Consulting Member, Technical Staff - Oracle
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Agenda
• Creating a test Group Replication cluster
• Monitoring the cluster
• Diagnosing performance problems using MySQL Enterprise Monitor’s Query Analyzer
• Diagnosing performance problems using MySQL Enterprise Monitor events
• Diagnosing availability problems with Group Replication
The examples used in this presentation were developed with MySQL-5.7 and Enterprise Monitor
3.4.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
[mem@localhost]$ mysqlsh
In a terminal window, start the MySQL Shell:
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
mysql-js> dba.deploySandboxInstance(3310)
A new MySQL sandbox instance will be created on this host in /home/mem/mysql-
sandboxes/3310
Please enter a MySQL root password for the new instance: (use mysql)
Deploying new MySQL instance...Instance localhost:3310 successfully deployed and started.
Use shell.connect('root@localhost:3310'); to connect to the instance.
Create sandbox instances – one on port 3310 (1/3)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
mysql-js> dba.deploySandboxInstance(3311)
A new MySQL sandbox instance will be created on this host in /home/mem/mysql-
sandboxes/3311
Please enter a MySQL root password for the new instance: (use mysql)
Deploying new MySQL instance...Instance localhost:3311 successfully deployed and started.
Use shell.connect('root@localhost:3311'); to connect to the instance.
Create sandbox instances – one on port 3311 (2/3)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
mysql-js> dba.deploySandboxInstance(3312)
A new MySQL sandbox instance will be created on this host in /home/mem/mysql-
sandboxes/3312
Please enter a MySQL root password for the new instance: (use mysql)
Deploying new MySQL instance...Instance localhost:3312 successfully deployed and started.
Use shell.connect('root@localhost:3312'); to connect to the instance.
Create sandbox instances – one on port 3312 (3/3)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
mysql-js> connect root@localhost:3310
Creating a Session to 'root@localhost:3310'
Enter password:
Your MySQL connection id is 286
Server version: 5.7.19-log MySQL Community Server (GPL)
No default schema selected; type use <schema> to set one.
Create cluster using just-created sandbox nodes
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
mysql-js> var cluster = dba.createCluster(’my_cluster')
A new InnoDB cluster will be created on instance 'root@localhost:3310'.
Creating InnoDB cluster ’my_cluster' on 'root@localhost:3310'...
Adding Seed Instance...
Cluster successfully created.
Use Cluster.addInstance() to add MySQL instances.
At least 3 instances are needed for the cluster to be able to withstand up to one server failure.
Create a group replication cluster using just-created sandbox nodes
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
mysql-js> cluster.addInstance('root@localhost:3311')
A new instance will be added to the InnoDB cluster. Depending on the amount of
data on the cluster this might take from a few seconds to several hours.
Please provide the password for 'root@localhost:3311': (use mysql)
Adding instance to the cluster ...
The instance 'root@localhost:3311' was successfully added to the cluster.
Add node 3311 to the cluster
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Creating a 3-Node Group Replication Cluster
mysql-js> cluster.addInstance('root@localhost:3312')
A new instance will be added to the InnoDB cluster. Depending on the amount of
data on the cluster this might take from a few seconds to several hours.
Please provide the password for 'root@localhost:3312': (use mysql)
Adding instance to the cluster ...
The instance 'root@localhost:3312' was successfully added to the cluster.
Add node 3312 to the cluster
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Download the Sakila Sample Database
https://dev.mysql.com/doc/index-other.html
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Install the Sakila Database Schema and Data
[mem@localhost mysql-sandboxes]$ mysql -uroot -pmysql --port=3310 -- host=127.0.0.1
mysql> source [path-to-sakila-files]/sakila-schema.sql
mysql> source [path-to-sakila-files]/sakila-data.sql
In a new terminal window
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Issue some problematic queries
mysql> SELECT * FROM film WHERE EXISTS(SELECT * FROM film_actor WHERE
actor_id=1 AND film_actor.film_id = film.film_id);
mysql> SELECT rental_rate, release_year FROM film WHERE rental_rate=4.99 ORDER BY
release_year;
In the mysql command line client:
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Issue some problematic queries
[mem@localhost]$ for i in {1..100}; do mysql -uroot -pmysql -e "SELECT * FROM category";
done
In a shell window – execute some simple, repeated queries
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Authenticate to the Service Manager and Monitor Targets
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Authenticate to the Service Manager and Monitor Targets
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Observing Discovery of Monitored Targets
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Observing Discovery of Monitored Targets
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Replication Topology View for Group Replication
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Replication Topology View for Group Replication
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Replication Topology View for Group Replication
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Finding Query Performance Issues Using Query Analyzer
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #1 - Queries with Quasi-Static Results
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #2 - Queries with Full Table Scans
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #2 - Queries with Full Table Scans
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #2 - Queries with Full Table Scans
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #2 – Dependent Subquery
SELECT * FROM film WHERE EXISTS(SELECT *
FROM film_actor WHERE actor_id=1 AND
film_actor.film_id = film.film_id)
SELECT film.* FROM sakila.film INNER JOIN
sakila.film_actor USING (film_id) WHERE
actor_id = 1
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #3 - Queries Causing File Sorts
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #3 - Queries Causing File Sorts
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #3 - Queries Causing File Sorts
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Automated Performance Issue Detection
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #4 – Long-Running Queries
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Performance Issue #5 – Table Cache Size Incorrect
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Bonus Performance Issue – Replication Outages
mysql-js> dba.killSandboxInstance('root@localhost:3312')
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Bonus Performance Issue – Replication Outages
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Bonus Performance Issue – Replication Outages
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Replication Outages – Repair The Loss of Quorum
mysql-js> dba.deploySandboxInstance(3314)
A new MySQL sandbox instance will be created on this host in /home/mem/mysql-
sandboxes/3311
Please enter a MySQL root password for the new instance: (use mysql)
Deploying new MySQL instance...
Instance localhost:3314 successfully deployed and started.
Use shell.connect('root@localhost:3311'); to connect to the instance.
mysql-js> cluster.addInstance('root@localhost:3314')
A new instance will be added to the InnoDB cluster. Depending on the amount of
data on the cluster this might take from a few seconds to several hours.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Replication Outages – Repair The Loss of a Node
mysql-js> dba.deploySandboxInstance(3314)
A new MySQL sandbox instance will be created on this host in /home/mem/mysql-
sandboxes/3311
Please enter a MySQL root password for the new instance: (use mysql)
Deploying new MySQL instance...
Instance localhost:3314 successfully deployed and started.
Use shell.connect('root@localhost:3311'); to connect to the instance.
mysql-js> cluster.addInstance('root@localhost:3314')
A new instance will be added to the InnoDB cluster. Depending on the amount of
data on the cluster this might take from a few seconds to several hours.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Bonus Performance Issue – Node Added (not Monitored)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Bonus Performance Issue – Node Added (Monitored)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
How Do I Get it?
• MySQL Enterprise Monitor is included with Oracle MySQL Enterprise Edition:
• Support
• MySQL Enterprise Backup
• MySQL Enterprise Audit
• MySQL Enterprise Firewall
• MySQL Enterprise Scalability
• MySQL Enterprise Transparent Data Encryption
• MySQL Enterprise Authentication
• Trials available at http://edelivery.oracle.com/
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Questions?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Thank You!

More Related Content

What's hot

Mysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sysMysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sysMark Leith
 
MySQL Monitoring Mechanisms
MySQL Monitoring MechanismsMySQL Monitoring Mechanisms
MySQL Monitoring Mechanisms
Mark Leith
 
MySQL For Linux Sysadmins
MySQL For Linux SysadminsMySQL For Linux Sysadmins
MySQL For Linux Sysadmins
Morgan Tocker
 
MySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreMySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document Store
Abel Flórez
 
What's New MySQL 8.0?
What's New MySQL 8.0?What's New MySQL 8.0?
What's New MySQL 8.0?
OracleMySQL
 
MySQL sys schema deep dive
MySQL sys schema deep diveMySQL sys schema deep dive
MySQL sys schema deep dive
Mark Leith
 
MySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA optionsMySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA options
Ted Wennmark
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News
Ted Wennmark
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
Abel Flórez
 
MySQL Cluster
MySQL ClusterMySQL Cluster
MySQL Cluster
Abel Flórez
 
My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3
Oleksii(Alexey) Porytskyi
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
Dave Stokes
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014Dave Stokes
 
What's new in my sql smug
What's new in my sql smugWhat's new in my sql smug
What's new in my sql smugTed Wennmark
 
MySQL 5.7 + JSON
MySQL 5.7 + JSONMySQL 5.7 + JSON
MySQL 5.7 + JSON
Morgan Tocker
 
MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 Updates
Dave Stokes
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server Defaults
Morgan Tocker
 
Performance schema and sys schema
Performance schema and sys schemaPerformance schema and sys schema
Performance schema and sys schema
Mark Leith
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"
Ryusuke Kajiyama
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RC
Ryusuke Kajiyama
 

What's hot (20)

Mysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sysMysql tech day_paris_ps_and_sys
Mysql tech day_paris_ps_and_sys
 
MySQL Monitoring Mechanisms
MySQL Monitoring MechanismsMySQL Monitoring Mechanisms
MySQL Monitoring Mechanisms
 
MySQL For Linux Sysadmins
MySQL For Linux SysadminsMySQL For Linux Sysadmins
MySQL For Linux Sysadmins
 
MySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreMySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document Store
 
What's New MySQL 8.0?
What's New MySQL 8.0?What's New MySQL 8.0?
What's New MySQL 8.0?
 
MySQL sys schema deep dive
MySQL sys schema deep diveMySQL sys schema deep dive
MySQL sys schema deep dive
 
MySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA optionsMySQL 5.6, news in 5.7 and our HA options
MySQL 5.6, news in 5.7 and our HA options
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
 
MySQL Cluster
MySQL ClusterMySQL Cluster
MySQL Cluster
 
My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014
 
What's new in my sql smug
What's new in my sql smugWhat's new in my sql smug
What's new in my sql smug
 
MySQL 5.7 + JSON
MySQL 5.7 + JSONMySQL 5.7 + JSON
MySQL 5.7 + JSON
 
MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 Updates
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server Defaults
 
Performance schema and sys schema
Performance schema and sys schemaPerformance schema and sys schema
Performance schema and sys schema
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RC
 

Similar to Solving Performance Problems Using MySQL Enterprise Monitor

MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
Miguel Araújo
 
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2
Ivan Ma
 
My sql8 innodb_cluster
My sql8 innodb_clusterMy sql8 innodb_cluster
My sql8 innodb_cluster
Mysql User Camp
 
20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing
Ivan Ma
 
20161029 py con-mysq-lv3
20161029 py con-mysq-lv320161029 py con-mysq-lv3
20161029 py con-mysq-lv3
Ivan Ma
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
Frederic Descamps
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
Nuno Carvalho
 
MySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demoMySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demo
Keith Hollman
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document Store
Mario Beck
 
MySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMySQL Group Replication - an Overview
MySQL Group Replication - an Overview
Matt Lord
 
2016 oSC MySQL Firewall
2016 oSC MySQL Firewall2016 oSC MySQL Firewall
2016 oSC MySQL Firewall
Georgi Kodinov
 
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016Geir Høydalsvik
 
Oracle RAC 12c Rel. 2 for Continuous Availability
Oracle RAC 12c Rel. 2 for Continuous AvailabilityOracle RAC 12c Rel. 2 for Continuous Availability
Oracle RAC 12c Rel. 2 for Continuous Availability
Markus Michalewicz
 
Swedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB ClusterSwedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB Cluster
Frederic Descamps
 
Rootconf admin101
Rootconf admin101Rootconf admin101
Rootconf admin101
Ligaya Turmelle
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
Ivan Ma
 
Boston meetup : MySQL Innodb Cluster - May 1st 2017
Boston meetup : MySQL Innodb Cluster - May 1st  2017Boston meetup : MySQL Innodb Cluster - May 1st  2017
Boston meetup : MySQL Innodb Cluster - May 1st 2017
Frederic Descamps
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
Mario Beck
 
1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan
Ivan Tu
 
Helsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB ClusterHelsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB Cluster
Frederic Descamps
 

Similar to Solving Performance Problems Using MySQL Enterprise Monitor (20)

MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
 
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2
 
My sql8 innodb_cluster
My sql8 innodb_clusterMy sql8 innodb_cluster
My sql8 innodb_cluster
 
20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing
 
20161029 py con-mysq-lv3
20161029 py con-mysq-lv320161029 py con-mysq-lv3
20161029 py con-mysq-lv3
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
 
MySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demoMySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demo
 
MySQL Document Store
MySQL Document StoreMySQL Document Store
MySQL Document Store
 
MySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMySQL Group Replication - an Overview
MySQL Group Replication - an Overview
 
2016 oSC MySQL Firewall
2016 oSC MySQL Firewall2016 oSC MySQL Firewall
2016 oSC MySQL Firewall
 
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
What's new in MySQL 5.7, Oracle Virtual Technology Summit, 2016
 
Oracle RAC 12c Rel. 2 for Continuous Availability
Oracle RAC 12c Rel. 2 for Continuous AvailabilityOracle RAC 12c Rel. 2 for Continuous Availability
Oracle RAC 12c Rel. 2 for Continuous Availability
 
Swedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB ClusterSwedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB Cluster
 
Rootconf admin101
Rootconf admin101Rootconf admin101
Rootconf admin101
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
 
Boston meetup : MySQL Innodb Cluster - May 1st 2017
Boston meetup : MySQL Innodb Cluster - May 1st  2017Boston meetup : MySQL Innodb Cluster - May 1st  2017
Boston meetup : MySQL Innodb Cluster - May 1st 2017
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan1 my sql20151219-kaji_ivan
1 my sql20151219-kaji_ivan
 
Helsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB ClusterHelsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB Cluster
 

More from OracleMySQL

MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)
OracleMySQL
 
MySQL 8.0 in a nutshell
MySQL 8.0 in a nutshellMySQL 8.0 in a nutshell
MySQL 8.0 in a nutshell
OracleMySQL
 
MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)
OracleMySQL
 
Robust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataRobust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL Data
OracleMySQL
 
Infographic oracle-my sql-cloud
Infographic oracle-my sql-cloudInfographic oracle-my sql-cloud
Infographic oracle-my sql-cloud
OracleMySQL
 
MySQL in oracle_public_cloud
MySQL in oracle_public_cloudMySQL in oracle_public_cloud
MySQL in oracle_public_cloud
OracleMySQL
 

More from OracleMySQL (6)

MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)
 
MySQL 8.0 in a nutshell
MySQL 8.0 in a nutshellMySQL 8.0 in a nutshell
MySQL 8.0 in a nutshell
 
MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)
 
Robust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataRobust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL Data
 
Infographic oracle-my sql-cloud
Infographic oracle-my sql-cloudInfographic oracle-my sql-cloud
Infographic oracle-my sql-cloud
 
MySQL in oracle_public_cloud
MySQL in oracle_public_cloudMySQL in oracle_public_cloud
MySQL in oracle_public_cloud
 

Recently uploaded

Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

Solving Performance Problems Using MySQL Enterprise Monitor

  • 1. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
  • 2. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Solving Performance Problems Using MySQL Enterprise Monitor Mark Matthews Consulting Member, Technical Staff - Oracle Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
  • 3. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 4. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Agenda • Creating a test Group Replication cluster • Monitoring the cluster • Diagnosing performance problems using MySQL Enterprise Monitor’s Query Analyzer • Diagnosing performance problems using MySQL Enterprise Monitor events • Diagnosing availability problems with Group Replication The examples used in this presentation were developed with MySQL-5.7 and Enterprise Monitor 3.4.
  • 5. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster [mem@localhost]$ mysqlsh In a terminal window, start the MySQL Shell:
  • 6. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster mysql-js> dba.deploySandboxInstance(3310) A new MySQL sandbox instance will be created on this host in /home/mem/mysql- sandboxes/3310 Please enter a MySQL root password for the new instance: (use mysql) Deploying new MySQL instance...Instance localhost:3310 successfully deployed and started. Use shell.connect('root@localhost:3310'); to connect to the instance. Create sandbox instances – one on port 3310 (1/3)
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster mysql-js> dba.deploySandboxInstance(3311) A new MySQL sandbox instance will be created on this host in /home/mem/mysql- sandboxes/3311 Please enter a MySQL root password for the new instance: (use mysql) Deploying new MySQL instance...Instance localhost:3311 successfully deployed and started. Use shell.connect('root@localhost:3311'); to connect to the instance. Create sandbox instances – one on port 3311 (2/3)
  • 8. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster mysql-js> dba.deploySandboxInstance(3312) A new MySQL sandbox instance will be created on this host in /home/mem/mysql- sandboxes/3312 Please enter a MySQL root password for the new instance: (use mysql) Deploying new MySQL instance...Instance localhost:3312 successfully deployed and started. Use shell.connect('root@localhost:3312'); to connect to the instance. Create sandbox instances – one on port 3312 (3/3)
  • 9. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster mysql-js> connect root@localhost:3310 Creating a Session to 'root@localhost:3310' Enter password: Your MySQL connection id is 286 Server version: 5.7.19-log MySQL Community Server (GPL) No default schema selected; type use <schema> to set one. Create cluster using just-created sandbox nodes
  • 10. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster mysql-js> var cluster = dba.createCluster(’my_cluster') A new InnoDB cluster will be created on instance 'root@localhost:3310'. Creating InnoDB cluster ’my_cluster' on 'root@localhost:3310'... Adding Seed Instance... Cluster successfully created. Use Cluster.addInstance() to add MySQL instances. At least 3 instances are needed for the cluster to be able to withstand up to one server failure. Create a group replication cluster using just-created sandbox nodes
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster mysql-js> cluster.addInstance('root@localhost:3311') A new instance will be added to the InnoDB cluster. Depending on the amount of data on the cluster this might take from a few seconds to several hours. Please provide the password for 'root@localhost:3311': (use mysql) Adding instance to the cluster ... The instance 'root@localhost:3311' was successfully added to the cluster. Add node 3311 to the cluster
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Creating a 3-Node Group Replication Cluster mysql-js> cluster.addInstance('root@localhost:3312') A new instance will be added to the InnoDB cluster. Depending on the amount of data on the cluster this might take from a few seconds to several hours. Please provide the password for 'root@localhost:3312': (use mysql) Adding instance to the cluster ... The instance 'root@localhost:3312' was successfully added to the cluster. Add node 3312 to the cluster
  • 13. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Download the Sakila Sample Database https://dev.mysql.com/doc/index-other.html
  • 14. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Install the Sakila Database Schema and Data [mem@localhost mysql-sandboxes]$ mysql -uroot -pmysql --port=3310 -- host=127.0.0.1 mysql> source [path-to-sakila-files]/sakila-schema.sql mysql> source [path-to-sakila-files]/sakila-data.sql In a new terminal window
  • 15. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Issue some problematic queries mysql> SELECT * FROM film WHERE EXISTS(SELECT * FROM film_actor WHERE actor_id=1 AND film_actor.film_id = film.film_id); mysql> SELECT rental_rate, release_year FROM film WHERE rental_rate=4.99 ORDER BY release_year; In the mysql command line client:
  • 16. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Issue some problematic queries [mem@localhost]$ for i in {1..100}; do mysql -uroot -pmysql -e "SELECT * FROM category"; done In a shell window – execute some simple, repeated queries
  • 17. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Authenticate to the Service Manager and Monitor Targets
  • 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Authenticate to the Service Manager and Monitor Targets
  • 19. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Observing Discovery of Monitored Targets
  • 20. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Observing Discovery of Monitored Targets
  • 21. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Replication Topology View for Group Replication
  • 22. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Replication Topology View for Group Replication
  • 23. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Replication Topology View for Group Replication
  • 24. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Finding Query Performance Issues Using Query Analyzer
  • 25. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #1 - Queries with Quasi-Static Results
  • 26. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #2 - Queries with Full Table Scans
  • 27. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #2 - Queries with Full Table Scans
  • 28. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #2 - Queries with Full Table Scans
  • 29. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #2 – Dependent Subquery SELECT * FROM film WHERE EXISTS(SELECT * FROM film_actor WHERE actor_id=1 AND film_actor.film_id = film.film_id) SELECT film.* FROM sakila.film INNER JOIN sakila.film_actor USING (film_id) WHERE actor_id = 1
  • 30. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #3 - Queries Causing File Sorts
  • 31. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #3 - Queries Causing File Sorts
  • 32. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #3 - Queries Causing File Sorts
  • 33. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Automated Performance Issue Detection
  • 34. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #4 – Long-Running Queries
  • 35. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Performance Issue #5 – Table Cache Size Incorrect
  • 36. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bonus Performance Issue – Replication Outages mysql-js> dba.killSandboxInstance('root@localhost:3312')
  • 37. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bonus Performance Issue – Replication Outages
  • 38. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bonus Performance Issue – Replication Outages
  • 39. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Replication Outages – Repair The Loss of Quorum mysql-js> dba.deploySandboxInstance(3314) A new MySQL sandbox instance will be created on this host in /home/mem/mysql- sandboxes/3311 Please enter a MySQL root password for the new instance: (use mysql) Deploying new MySQL instance... Instance localhost:3314 successfully deployed and started. Use shell.connect('root@localhost:3311'); to connect to the instance. mysql-js> cluster.addInstance('root@localhost:3314') A new instance will be added to the InnoDB cluster. Depending on the amount of data on the cluster this might take from a few seconds to several hours.
  • 40. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Replication Outages – Repair The Loss of a Node mysql-js> dba.deploySandboxInstance(3314) A new MySQL sandbox instance will be created on this host in /home/mem/mysql- sandboxes/3311 Please enter a MySQL root password for the new instance: (use mysql) Deploying new MySQL instance... Instance localhost:3314 successfully deployed and started. Use shell.connect('root@localhost:3311'); to connect to the instance. mysql-js> cluster.addInstance('root@localhost:3314') A new instance will be added to the InnoDB cluster. Depending on the amount of data on the cluster this might take from a few seconds to several hours.
  • 41. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bonus Performance Issue – Node Added (not Monitored)
  • 42. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Bonus Performance Issue – Node Added (Monitored)
  • 43. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | How Do I Get it? • MySQL Enterprise Monitor is included with Oracle MySQL Enterprise Edition: • Support • MySQL Enterprise Backup • MySQL Enterprise Audit • MySQL Enterprise Firewall • MySQL Enterprise Scalability • MySQL Enterprise Transparent Data Encryption • MySQL Enterprise Authentication • Trials available at http://edelivery.oracle.com/
  • 44. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Questions?
  • 45. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Thank You!