SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Optimizing MySQL for 
Cascade Server 
James Kreuziger 
Strategic Communications 
@jkreuzig 
#csuc14 
1
The standard “a little bit about myself” 
• Graduate of UC Irvine (96) with a B.S. in Physics 
• Staff member for the last 16 years 
• First 8 years as a scientific programmer on grant funded research 
• Last 8 years in communications department building websites 
• Hobbies 
– Soccer referee 
• USSF Grade 6 State Referee 
• AYSO National Referee 
• Southern California Soccer Officials Association (High School Soccer) 
• NISOA Referee (National Intercollegiate Soccer Officials Association) 
2
Overview 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
• Default MySQL configuration 
• Configuring MySQL for your workload 
• Tools for testing 
• Testing and results 
• Questions 
• Resources 
3
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
4
Who is this presentation for? 
On a daily basis, I wear many hats: 
• Cascade administrator 
• Database administrator 
• System administrator 
• Apache administrator 
• Google Search Appliance 
• And the catch all: 
OTHER DUTIES AS ASSIGNED 
5
Who is this presentation for? 
You should be here if: 
• Cascade administrators 
• Want to migrate from another db 
• You have installed MySQL for 
other reasons, but haven’t done 
any other configuration. 
Not really for: 
• Large MySQL installation dba’s 
• You are running MySQL in the 
cloud 
6
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
7
What we won’t cover today 
• Configuration of Cascade Server 
• MySQL replication or cluster setups 
• Memcached 
8
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
9
Terminology 
Query Cache – From the MySQL Documentation[1] 
“The query cache stores the text of a SELECT statement together with the 
corresponding result that was sent to the client. If an identical statement is 
received later, the server retrieves the results from the query cache rather than 
parsing and executing the statement again. The query cache is shared among 
sessions, so a result set generated by one client can be sent in response to the 
same query issued by another client.” 
The key here is “identical statement”. Every space, term 
and even the capitalization of the statement has to be the 
same. 
1. http://dev.mysql.com/doc/refman/5.5/en/query-cache.html 10
Terminology cont. 
Innodb Buffer Pool – From the MySQL Documentation[2] 
“InnoDB maintains a storage area called the buffer pool for caching data and 
indexes in memory” 
VERY important. Probably one of the most important 
configuration options. If you make only one change to your 
configuration, this (in my opinion) is the most important. 
2. http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html 11
Terminology cont. 
Row – An entry in a database table 
Page - The default size at which data is moved between disk and memory 
(default = 16K for MySQL)[3]. It’s the smallest unit of on disk storage. 
– In MySQL, the max a row can be is roughly 50% of the page size (8000 bytes default) not 
including VARBINAY, VARCHAR, BOLOB or TEXT columns. 
Why is the max row size restricted to 50% of the page size? 
– To allow one page to store at least 2 columns. 
3. http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_page 12
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
13
Hardware requirements 
Hannon Hill requirements for running MySQL for Cascade[4] 
• MySQL 5.0 / 5.1 / 5.5 
• Memory for database server: 
– 2 GB RAM (minimum) 
– 4 GB RAM (recommended) 
I’d recommend a quad-core server with a minimum 16 GB 
RAM for your database server. 
4. http://www.hannonhill.com/products/requirements.html 14
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
15
Which version of MySQL to run 
• 5.0 
• 5.1 
• 5.5 
• 5.6? Not yet officially supported 
4. http://www.hannonhill.com/products/requirements.html 16
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
17
Which flavor of MySQL to run 
• Oracle MySQL 
• MariaDB 
– Soon to be the default database server for RedHat and by default, CentOS 
– http://ideas.hannonhill.com/forums/52559-ideas-for-cascade-server/suggestions/ 
6065138-add-support-for-mariadb 
• Percona Server 
– My favorite 
– Percona XtraDB is a drop in replacement for innodb[5] 
– XtraDB available in MariaDB as well. 
Note: Only Oracle MySQL is listed as currently supported. Try these 
others at your own risk. 
5. http://www.percona.com/software/percona-xtradb 18
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
• Default MySQL configuration 
19
Default MySQL configuration 
These are the Hannon Hill recommendations[6] 
• InnoDB storage engine 
• max_allowed_packet=16M 
• key_buffer=16M 
• Character set is defined when creating the database 
6. http://www.hannonhill.com/kb/Database-Config/ 20
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
• Default MySQL configuration 
• Configuring MySQL for your workload 
21
Configuring MySQL for your workload 
The my.cnf file 
Innodb should be the default storage engine 
• innodb_file_per_table = 1 
• log_bin = <directory where binary log files live> 
• Cache (query caches and other caches) 
– binlog_cache_size 
– thread_cache_size 
– query_cache_size 
– query_cache_limit 
22
Configuring MySQL for your workload 
cont. 
• Buffers 
– innodb_buffer_pool - VERY important. Probably one of the most 
important configuration options. The bigger you can make this, 
the better. 80% of available memory is a good starting point. If 
you have 128 GB+ memory available on your machine, you may 
even be able to push it higher (90%) 
You can make this too big. If your entire dataset can fit into 
the inoodb_buffer_pool, it’s probably too big. 
23
Configuring MySQL for your workload 
cont. 
• Storage 
– If you have the option, store your data and binary log files on 
separate physical disks 
“But I don’t want to read all the documentation. I just want 
to get started with a good, solid configuration file that 
meets my needs.” 
• Percona configuration tool – https://tools.percona.com/ 
24
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
• Default MySQL configuration 
• Configuring MySQL for your workload 
• Tools for testing 
25
Tools for testing 
• Hardware monitoring – Vmware vSphere web client 
– If you have the option, store your data and binary log files on 
separate physical disks 
26
Tools for testing cont. 
• Monitoring MySQL 
– MySQL Workbench - http://mysqlworkbench.org/ 
27
Tools for testing cont. 
• jmeter – Open Source load testing tool written in java 
- http://jmeter.apache.org/ 
28
Tools for testing cont. 
• Blazemeter – jmeter in the cloud. 
• http://blazemeter.com 
29
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
• Default MySQL configuration 
• Configuring MySQL for your workload 
• Tools for testing 
• Testing and results 
30
Testing and results 
• Test hardware setup – cmstest.oit.uci.edu 
– Vmware vcenter server 
– Intel® "Penryn" Generation, 4 CPU 
– CentOS 6 (64-bit) 
– 8GB RAM 
– 512GB Storage 
• Cascade Setup 
– Cascade 7.12 
– Java options 
• export JAVA_OPTS="-d64 -server –Xmx4096M -XX:MaxPermSize=512M 
31
Testing and results cont. 
• MySQL Setup 
– Default MySQL server configuration (Hannon Hill 
recommendations) 
• cascade-test-stripped.cnf 
– My configuration 
• cascade-my-test.cnf (most comments have been stripped out) 
– Cascade database configuration options – Can be set at 
database creation/restore, or using ALTER TABLE 
• KEY_BLOCK_SIZE 
– 16K 
– 8K 
– 4K 
– 2K or 1K – Not tested. Not useful for a Cascade database instance. Row sizes 
won’t compress. 
32
Testing and results cont. 
• Storage testing 
– Examine the file sizes of the .ibd (innodb) files. These are the 
storage files for the data and indexes for each table. The size 
shown in the OS corresponds to how much space each table is 
taking. 
– Could determine this through MySQL system tables, but results 
would be comparable and it would take more time. 
– Use ALTER TABLE to change all tables 
• KEY_BLOCK_SIZE=16 
• KEY_BLOCK_SIZE=8 
• KEY_BLOCK_SIZE=4 
33
Testing and results cont. 
• Storage testing results 
34
Testing and results cont. 
• Load testing 
– jmeter running on a 27” iMac, Quad Core, 32 GB RAM 
• Allocated 10GB memory, otherwise it crashes 
– Test plan - Cascade-Test.jmx 
• 20 minute test 
• 10 minute ramp up time 
• 15 users 
• Login, publishing (pages and directories), editing, opening, changing sites, 
deleting messages, logoff 
• Plan was to exercise Cascade with a typical number of active users (15) 
and different MySQL configurations. 
35
Testing and results cont. 
• Load testing results 
– KEY_BLOCK_SIZE=16, 30 users 
• Too many errors 
– KEY_BLOCK_SIZE=16, 15 users 
• 346.5 ms average. response time 
– KEY_BLOCK_SIZE=8, 15 users 
• 339.5 ms average response time 
– KEY_BLOCK_SIZE=4, 15 users (single run) 
• 331 ms average response time 
– KEY_BLOCK_SIZE=16, 15 users, minimal configuration 
• 389 ms average response time 
Note: I didn’t test compression on the minimal configuration, as it 
wasn’t enabled. 
36
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
• Default MySQL configuration 
• Configuring MySQL for your workload 
• Tools for testing 
• Testing and results 
• Questions 
37
Optimizing MySQL for Cascade Server 
• Who is this presentation for? 
• What we won’t cover today 
• Terminology 
• Hardware requirements 
• Which version of MySQL to run 
• Which flavor of MySQL to run 
• Default MySQL configuration 
• Configuring MySQL for your workload 
• Tools for testing 
• Testing and results 
• Questions 
• Resources 
38
Resources 
• Book 
– High Performance MySQL, 3rd Edition - Baron Schwartz, Peter 
Zaitsev, and Vadim Tkachenko 
– http://www.highperfmysql.com/ 
• Percona 
– http://www.percona.com/ 
– Percona Tools https://tools.percona.com/ 
– YouTube https://www.youtube.com/user/PerconaMySQL 
• MariaDB 
– https://mariadb.org/ 
• Oracle MySQL 
– http://dev.mysql.com/doc/refman/5.5/en/ - Best overall 
documentation 
39
Thank You! 
James Kreuziger 
jkreuzig@uci.edu 
http://uci.edu/ 
@jkreuzig 
#csuc14 
949-824-5484 
40

Más contenido relacionado

La actualidad más candente

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
Tarique Saleem
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
Abdul Manaf
 
Barcelona mysqlnd qc
Barcelona mysqlnd qcBarcelona mysqlnd qc
Barcelona mysqlnd qc
Anis Berejeb
 
MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
MYXPLAIN
 
Mysql 57-upcoming-changes
Mysql 57-upcoming-changesMysql 57-upcoming-changes
Mysql 57-upcoming-changes
Morgan Tocker
 
Tool it Up! - Session #3 - MySQL
Tool it Up! - Session #3 - MySQLTool it Up! - Session #3 - MySQL
Tool it Up! - Session #3 - MySQL
toolitup
 
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
Morgan Tocker
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp
 

La actualidad más candente (20)

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
 
Understanding MySql locking issues
Understanding MySql locking issuesUnderstanding MySql locking issues
Understanding MySql locking issues
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
 
Barcelona mysqlnd qc
Barcelona mysqlnd qcBarcelona mysqlnd qc
Barcelona mysqlnd qc
 
MySQL Performance - Best practices
MySQL Performance - Best practices MySQL Performance - Best practices
MySQL Performance - Best practices
 
High performance and high availability proxies for MySQL
High performance and high availability proxies for MySQLHigh performance and high availability proxies for MySQL
High performance and high availability proxies for MySQL
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17
 
MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
 
MySQL Enterprise Backup (MEB)
MySQL Enterprise Backup (MEB)MySQL Enterprise Backup (MEB)
MySQL Enterprise Backup (MEB)
 
Modern MySQL Monitoring and Dashboards.
Modern MySQL Monitoring and Dashboards.Modern MySQL Monitoring and Dashboards.
Modern MySQL Monitoring and Dashboards.
 
MySQL NoSQL APIs
MySQL NoSQL APIsMySQL NoSQL APIs
MySQL NoSQL APIs
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning Variables
 
MySQL Performance Tuning - GNUnify 2010
MySQL Performance Tuning - GNUnify 2010MySQL Performance Tuning - GNUnify 2010
MySQL Performance Tuning - GNUnify 2010
 
Mysql 57-upcoming-changes
Mysql 57-upcoming-changesMysql 57-upcoming-changes
Mysql 57-upcoming-changes
 
PostgreSQL and MySQL
PostgreSQL and MySQLPostgreSQL and MySQL
PostgreSQL and MySQL
 
MySQL NDB Cluster 8.0
MySQL NDB Cluster 8.0MySQL NDB Cluster 8.0
MySQL NDB Cluster 8.0
 
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
Ansible is Our Wishbone(Automate DBA Tasks With Ansible)
 
Tool it Up! - Session #3 - MySQL
Tool it Up! - Session #3 - MySQLTool it Up! - Session #3 - MySQL
Tool it Up! - Session #3 - MySQL
 
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
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
 

Destacado

Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...
hannonhill
 
Using Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page OptimizationUsing Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page Optimization
hannonhill
 
Connecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade ServerConnecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade Server
hannonhill
 

Destacado (8)

2 Men 1 Site
2 Men 1 Site2 Men 1 Site
2 Men 1 Site
 
Angularjs cascade
Angularjs cascadeAngularjs cascade
Angularjs cascade
 
Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...Information Architecture and User Experience: The Journey, The Destination, T...
Information Architecture and User Experience: The Journey, The Destination, T...
 
Block Choosers, Configuration Blocks, Metadata Sets, Indexing and XSLT
Block Choosers, Configuration Blocks, Metadata Sets, Indexing and XSLTBlock Choosers, Configuration Blocks, Metadata Sets, Indexing and XSLT
Block Choosers, Configuration Blocks, Metadata Sets, Indexing and XSLT
 
Web Governance Crash Course: Creating a Sustainable Digital Transformation
Web Governance Crash Course: Creating a Sustainable Digital TransformationWeb Governance Crash Course: Creating a Sustainable Digital Transformation
Web Governance Crash Course: Creating a Sustainable Digital Transformation
 
Cascade + Bootstrap = Awesome
Cascade + Bootstrap = AwesomeCascade + Bootstrap = Awesome
Cascade + Bootstrap = Awesome
 
Using Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page OptimizationUsing Cascade technology to increase SEO/Landing Page Optimization
Using Cascade technology to increase SEO/Landing Page Optimization
 
Connecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade ServerConnecting Ecommerce & Centralized Analytics to Cascade Server
Connecting Ecommerce & Centralized Analytics to Cascade Server
 

Similar a Optimizing MySQL for Cascade Server

My sqlstrategyroadmap
My sqlstrategyroadmapMy sqlstrategyroadmap
My sqlstrategyroadmap
slidethanks
 
Handling Massive Writes
Handling Massive WritesHandling Massive Writes
Handling Massive Writes
Liran Zelkha
 
Scaling MySQL Using Fabric
Scaling MySQL Using FabricScaling MySQL Using Fabric
Scaling MySQL Using Fabric
Remote MySQL DBA
 

Similar a Optimizing MySQL for Cascade Server (20)

MySQL :What's New #GIDS16
MySQL :What's New #GIDS16MySQL :What's New #GIDS16
MySQL :What's New #GIDS16
 
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
 
MySQL 5.7 what's new
MySQL 5.7 what's newMySQL 5.7 what's new
MySQL 5.7 what's new
 
My sql crashcourse_intro_kdl
My sql crashcourse_intro_kdlMy sql crashcourse_intro_kdl
My sql crashcourse_intro_kdl
 
My sqlstrategyroadmap
My sqlstrategyroadmapMy sqlstrategyroadmap
My sqlstrategyroadmap
 
MySQL Strategy&Roadmap
MySQL Strategy&RoadmapMySQL Strategy&Roadmap
MySQL Strategy&Roadmap
 
Running MySQL on Linux
Running MySQL on LinuxRunning MySQL on Linux
Running MySQL on Linux
 
Scaling with sync_replication using Galera and EC2
Scaling with sync_replication using Galera and EC2Scaling with sync_replication using Galera and EC2
Scaling with sync_replication using Galera and EC2
 
high performance databases
high performance databaseshigh performance databases
high performance databases
 
MariaDB 10: The Complete Tutorial
MariaDB 10: The Complete TutorialMariaDB 10: The Complete Tutorial
MariaDB 10: The Complete Tutorial
 
Handling Massive Writes
Handling Massive WritesHandling Massive Writes
Handling Massive Writes
 
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
 
MySQL Performance Tuning London Meetup June 2017
MySQL Performance Tuning London Meetup June 2017MySQL Performance Tuning London Meetup June 2017
MySQL Performance Tuning London Meetup June 2017
 
What's New in MySQL 5.7
What's New in MySQL 5.7What's New in MySQL 5.7
What's New in MySQL 5.7
 
How does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsDataHow does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsData
 
Scaling MySQL Using Fabric
Scaling MySQL Using FabricScaling MySQL Using Fabric
Scaling MySQL Using Fabric
 
Scaling MySQL using Fabric
Scaling MySQL using FabricScaling MySQL using Fabric
Scaling MySQL using Fabric
 
Tuning Linux Windows and Firebird for Heavy Workload
Tuning Linux Windows and Firebird for Heavy WorkloadTuning Linux Windows and Firebird for Heavy Workload
Tuning Linux Windows and Firebird for Heavy Workload
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
 
071410 sun a_1515_feldman_stephen
071410 sun a_1515_feldman_stephen071410 sun a_1515_feldman_stephen
071410 sun a_1515_feldman_stephen
 

Más de hannonhill

Data Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JSData Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JS
hannonhill
 
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
hannonhill
 
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
Accessibility in Practice:  Integrating Web Accessibility into Cascade TrainingAccessibility in Practice:  Integrating Web Accessibility into Cascade Training
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
hannonhill
 
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade ServerCrowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
hannonhill
 
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
hannonhill
 
Climbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground UpClimbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground Up
hannonhill
 
In Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified TemplateIn Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified Template
hannonhill
 
Cusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding PlatformCusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding Platform
hannonhill
 
Web Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and SimplicityWeb Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and Simplicity
hannonhill
 
Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!
hannonhill
 
Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Services
hannonhill
 
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...
Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...
hannonhill
 
Building Org Charts Using Cascade Server
Building Org Charts Using Cascade Server Building Org Charts Using Cascade Server
Building Org Charts Using Cascade Server
hannonhill
 
Leveraging Administrative Tasks with Webservices
Leveraging Administrative Tasks with WebservicesLeveraging Administrative Tasks with Webservices
Leveraging Administrative Tasks with Webservices
hannonhill
 
Making the grade without Clippy – Use of automatic readability scoring
Making the grade without Clippy – Use of automatic readability scoringMaking the grade without Clippy – Use of automatic readability scoring
Making the grade without Clippy – Use of automatic readability scoring
hannonhill
 
Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...
Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...
Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...
hannonhill
 
Preparing for Emergency Communications
Preparing for Emergency CommunicationsPreparing for Emergency Communications
Preparing for Emergency Communications
hannonhill
 
A Groovy Way to Interface With Cascade Server
A Groovy Way to Interface With Cascade ServerA Groovy Way to Interface With Cascade Server
A Groovy Way to Interface With Cascade Server
hannonhill
 

Más de hannonhill (20)

Data Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JSData Modeling with Cascade Server and HighCharts JS
Data Modeling with Cascade Server and HighCharts JS
 
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
Modernizing Internal Communications with Cascade Server, WordPress and MailCh...
 
Fun with Cascade Server!
Fun with Cascade Server!Fun with Cascade Server!
Fun with Cascade Server!
 
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
Accessibility in Practice:  Integrating Web Accessibility into Cascade TrainingAccessibility in Practice:  Integrating Web Accessibility into Cascade Training
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
 
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade ServerCrowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
Crowdsourced Maps: From Google Forms to Fusion Tables to Cascade Server
 
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...	Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
Superautomatic! Data Feeds, Bricks, and Blocks, with Server-side Transformat...
 
Climbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground UpClimbing Migration Mountain: 200+ Sites from the Ground Up
Climbing Migration Mountain: 200+ Sites from the Ground Up
 
In Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified TemplateIn Pursuit of the Grand Unified Template
In Pursuit of the Grand Unified Template
 
Cusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding PlatformCusestarter or How We Built Our Own Crowdfunding Platform
Cusestarter or How We Built Our Own Crowdfunding Platform
 
Web Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and SimplicityWeb Services: Encapsulation, Reusability, and Simplicity
Web Services: Encapsulation, Reusability, and Simplicity
 
Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!Cascade Server: Past, Present, and Future!
Cascade Server: Past, Present, and Future!
 
Web Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web ServicesWeb Forms, or How I Learned to Stop Worrying and Love Web Services
Web Forms, or How I Learned to Stop Worrying and Love Web Services
 
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...
Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...Outputting Their Full Potential: Using Outputs for Site Redesigns andDevelo...
Outputting Their Full Potential: Using Outputs for Site Redesigns and Develo...
 
Redesign in Cascade Server
Redesign in Cascade ServerRedesign in Cascade Server
Redesign in Cascade Server
 
Building Org Charts Using Cascade Server
Building Org Charts Using Cascade Server Building Org Charts Using Cascade Server
Building Org Charts Using Cascade Server
 
Leveraging Administrative Tasks with Webservices
Leveraging Administrative Tasks with WebservicesLeveraging Administrative Tasks with Webservices
Leveraging Administrative Tasks with Webservices
 
Making the grade without Clippy – Use of automatic readability scoring
Making the grade without Clippy – Use of automatic readability scoringMaking the grade without Clippy – Use of automatic readability scoring
Making the grade without Clippy – Use of automatic readability scoring
 
Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...
Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...
Ingesting Banner output Schedule Classes into Cascade Server (In Java - Web S...
 
Preparing for Emergency Communications
Preparing for Emergency CommunicationsPreparing for Emergency Communications
Preparing for Emergency Communications
 
A Groovy Way to Interface With Cascade Server
A Groovy Way to Interface With Cascade ServerA Groovy Way to Interface With Cascade Server
A Groovy Way to Interface With Cascade Server
 

Último

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
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Último (20)

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...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
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
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
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
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%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
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%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
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%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
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

Optimizing MySQL for Cascade Server

  • 1. Optimizing MySQL for Cascade Server James Kreuziger Strategic Communications @jkreuzig #csuc14 1
  • 2. The standard “a little bit about myself” • Graduate of UC Irvine (96) with a B.S. in Physics • Staff member for the last 16 years • First 8 years as a scientific programmer on grant funded research • Last 8 years in communications department building websites • Hobbies – Soccer referee • USSF Grade 6 State Referee • AYSO National Referee • Southern California Soccer Officials Association (High School Soccer) • NISOA Referee (National Intercollegiate Soccer Officials Association) 2
  • 3. Overview • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run • Default MySQL configuration • Configuring MySQL for your workload • Tools for testing • Testing and results • Questions • Resources 3
  • 4. Optimizing MySQL for Cascade Server • Who is this presentation for? 4
  • 5. Who is this presentation for? On a daily basis, I wear many hats: • Cascade administrator • Database administrator • System administrator • Apache administrator • Google Search Appliance • And the catch all: OTHER DUTIES AS ASSIGNED 5
  • 6. Who is this presentation for? You should be here if: • Cascade administrators • Want to migrate from another db • You have installed MySQL for other reasons, but haven’t done any other configuration. Not really for: • Large MySQL installation dba’s • You are running MySQL in the cloud 6
  • 7. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today 7
  • 8. What we won’t cover today • Configuration of Cascade Server • MySQL replication or cluster setups • Memcached 8
  • 9. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology 9
  • 10. Terminology Query Cache – From the MySQL Documentation[1] “The query cache stores the text of a SELECT statement together with the corresponding result that was sent to the client. If an identical statement is received later, the server retrieves the results from the query cache rather than parsing and executing the statement again. The query cache is shared among sessions, so a result set generated by one client can be sent in response to the same query issued by another client.” The key here is “identical statement”. Every space, term and even the capitalization of the statement has to be the same. 1. http://dev.mysql.com/doc/refman/5.5/en/query-cache.html 10
  • 11. Terminology cont. Innodb Buffer Pool – From the MySQL Documentation[2] “InnoDB maintains a storage area called the buffer pool for caching data and indexes in memory” VERY important. Probably one of the most important configuration options. If you make only one change to your configuration, this (in my opinion) is the most important. 2. http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html 11
  • 12. Terminology cont. Row – An entry in a database table Page - The default size at which data is moved between disk and memory (default = 16K for MySQL)[3]. It’s the smallest unit of on disk storage. – In MySQL, the max a row can be is roughly 50% of the page size (8000 bytes default) not including VARBINAY, VARCHAR, BOLOB or TEXT columns. Why is the max row size restricted to 50% of the page size? – To allow one page to store at least 2 columns. 3. http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_page 12
  • 13. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements 13
  • 14. Hardware requirements Hannon Hill requirements for running MySQL for Cascade[4] • MySQL 5.0 / 5.1 / 5.5 • Memory for database server: – 2 GB RAM (minimum) – 4 GB RAM (recommended) I’d recommend a quad-core server with a minimum 16 GB RAM for your database server. 4. http://www.hannonhill.com/products/requirements.html 14
  • 15. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run 15
  • 16. Which version of MySQL to run • 5.0 • 5.1 • 5.5 • 5.6? Not yet officially supported 4. http://www.hannonhill.com/products/requirements.html 16
  • 17. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run 17
  • 18. Which flavor of MySQL to run • Oracle MySQL • MariaDB – Soon to be the default database server for RedHat and by default, CentOS – http://ideas.hannonhill.com/forums/52559-ideas-for-cascade-server/suggestions/ 6065138-add-support-for-mariadb • Percona Server – My favorite – Percona XtraDB is a drop in replacement for innodb[5] – XtraDB available in MariaDB as well. Note: Only Oracle MySQL is listed as currently supported. Try these others at your own risk. 5. http://www.percona.com/software/percona-xtradb 18
  • 19. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run • Default MySQL configuration 19
  • 20. Default MySQL configuration These are the Hannon Hill recommendations[6] • InnoDB storage engine • max_allowed_packet=16M • key_buffer=16M • Character set is defined when creating the database 6. http://www.hannonhill.com/kb/Database-Config/ 20
  • 21. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run • Default MySQL configuration • Configuring MySQL for your workload 21
  • 22. Configuring MySQL for your workload The my.cnf file Innodb should be the default storage engine • innodb_file_per_table = 1 • log_bin = <directory where binary log files live> • Cache (query caches and other caches) – binlog_cache_size – thread_cache_size – query_cache_size – query_cache_limit 22
  • 23. Configuring MySQL for your workload cont. • Buffers – innodb_buffer_pool - VERY important. Probably one of the most important configuration options. The bigger you can make this, the better. 80% of available memory is a good starting point. If you have 128 GB+ memory available on your machine, you may even be able to push it higher (90%) You can make this too big. If your entire dataset can fit into the inoodb_buffer_pool, it’s probably too big. 23
  • 24. Configuring MySQL for your workload cont. • Storage – If you have the option, store your data and binary log files on separate physical disks “But I don’t want to read all the documentation. I just want to get started with a good, solid configuration file that meets my needs.” • Percona configuration tool – https://tools.percona.com/ 24
  • 25. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run • Default MySQL configuration • Configuring MySQL for your workload • Tools for testing 25
  • 26. Tools for testing • Hardware monitoring – Vmware vSphere web client – If you have the option, store your data and binary log files on separate physical disks 26
  • 27. Tools for testing cont. • Monitoring MySQL – MySQL Workbench - http://mysqlworkbench.org/ 27
  • 28. Tools for testing cont. • jmeter – Open Source load testing tool written in java - http://jmeter.apache.org/ 28
  • 29. Tools for testing cont. • Blazemeter – jmeter in the cloud. • http://blazemeter.com 29
  • 30. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run • Default MySQL configuration • Configuring MySQL for your workload • Tools for testing • Testing and results 30
  • 31. Testing and results • Test hardware setup – cmstest.oit.uci.edu – Vmware vcenter server – Intel® "Penryn" Generation, 4 CPU – CentOS 6 (64-bit) – 8GB RAM – 512GB Storage • Cascade Setup – Cascade 7.12 – Java options • export JAVA_OPTS="-d64 -server –Xmx4096M -XX:MaxPermSize=512M 31
  • 32. Testing and results cont. • MySQL Setup – Default MySQL server configuration (Hannon Hill recommendations) • cascade-test-stripped.cnf – My configuration • cascade-my-test.cnf (most comments have been stripped out) – Cascade database configuration options – Can be set at database creation/restore, or using ALTER TABLE • KEY_BLOCK_SIZE – 16K – 8K – 4K – 2K or 1K – Not tested. Not useful for a Cascade database instance. Row sizes won’t compress. 32
  • 33. Testing and results cont. • Storage testing – Examine the file sizes of the .ibd (innodb) files. These are the storage files for the data and indexes for each table. The size shown in the OS corresponds to how much space each table is taking. – Could determine this through MySQL system tables, but results would be comparable and it would take more time. – Use ALTER TABLE to change all tables • KEY_BLOCK_SIZE=16 • KEY_BLOCK_SIZE=8 • KEY_BLOCK_SIZE=4 33
  • 34. Testing and results cont. • Storage testing results 34
  • 35. Testing and results cont. • Load testing – jmeter running on a 27” iMac, Quad Core, 32 GB RAM • Allocated 10GB memory, otherwise it crashes – Test plan - Cascade-Test.jmx • 20 minute test • 10 minute ramp up time • 15 users • Login, publishing (pages and directories), editing, opening, changing sites, deleting messages, logoff • Plan was to exercise Cascade with a typical number of active users (15) and different MySQL configurations. 35
  • 36. Testing and results cont. • Load testing results – KEY_BLOCK_SIZE=16, 30 users • Too many errors – KEY_BLOCK_SIZE=16, 15 users • 346.5 ms average. response time – KEY_BLOCK_SIZE=8, 15 users • 339.5 ms average response time – KEY_BLOCK_SIZE=4, 15 users (single run) • 331 ms average response time – KEY_BLOCK_SIZE=16, 15 users, minimal configuration • 389 ms average response time Note: I didn’t test compression on the minimal configuration, as it wasn’t enabled. 36
  • 37. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run • Default MySQL configuration • Configuring MySQL for your workload • Tools for testing • Testing and results • Questions 37
  • 38. Optimizing MySQL for Cascade Server • Who is this presentation for? • What we won’t cover today • Terminology • Hardware requirements • Which version of MySQL to run • Which flavor of MySQL to run • Default MySQL configuration • Configuring MySQL for your workload • Tools for testing • Testing and results • Questions • Resources 38
  • 39. Resources • Book – High Performance MySQL, 3rd Edition - Baron Schwartz, Peter Zaitsev, and Vadim Tkachenko – http://www.highperfmysql.com/ • Percona – http://www.percona.com/ – Percona Tools https://tools.percona.com/ – YouTube https://www.youtube.com/user/PerconaMySQL • MariaDB – https://mariadb.org/ • Oracle MySQL – http://dev.mysql.com/doc/refman/5.5/en/ - Best overall documentation 39
  • 40. Thank You! James Kreuziger jkreuzig@uci.edu http://uci.edu/ @jkreuzig #csuc14 949-824-5484 40