SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Anthropomorphic Design
Making a Better WordPress with Jazz Hands
+ =
But seriously….
HyperDB, MySQL
Performance, & Flavors of
MySQL
Evan Volgas
About me
• 10 years working with data — as an analyst, a
DBA, etc
• Currently a data engineer for WhatRunsWhere
• Data Engineer = DBA + Map Reduce + PTSD
from Apache Zookeeper
• Worked with WordPress off/on for about ~5 years
Disclaimers
I believe
• Google exists
• You can use it
• You don’t enjoy reading a bunch of code and
config files in a presentation any more than I do
• WordCamp needs more cowbell
What is
HyberDB?
• “Very advanced database class”
• Powers WordPress.com
• Supports replication, partitioning, load balancing,
etc
“Very advanced database class”
find 'hyperdb/' -name '*.php' | xargs wc -l
• HyperDB: 1,401 lines of PHP
• WordPress: 255,961 lines of PHP
• Hello Dolly: 81 lines of PHP
• Yoast’s Google Analytics 16,174 lines of PHP
Why’d you have to go and make
things so complicated
• The complexity of HyperDB has nothing to do with
the PHP code itself
• Implementing HyperDB itself is mostly
configuration
• To the extent that HyperDB is advanced, it’s
because MySQL has a lot of advanced stuff going
on underneath the hood
Who cares about MySQL?
An argument from fellow WordCamp ATL
presenter Tom McFarlin*
• Employers haven’t fully figured out what
WordPress *can* do
• WordPress makes it easy to be a software
implementer as opposed to a software
developer so in a lot of cases salaries probably
should be lower
• The WordPress community itself hasn’t
educated employers, customers, or software
implementors how classical software
development / engineering can fit into the
WordPress ecosystem
*https://tommcfarlin.com/wordpress-developer-
salary/
Tell me again why this matters
• We don’t need any more social media icons plugin
• Many of the things that are really pushing the
WordPress envelope are VERY database
intensive and their performance needs are poorly
understood
• There are a million things you can (and should) do
to optimize your WordPress website. When those
stop being enough, it’d be a good idea to know
some DB basics
HyperDB
• For practical extents and purposes, it’s kind of like a
giant wp-config.php that pertains to your database
• A lot of great resources for setting it up. If you
decide you want to try it, make sure you check out
https://www.digitalocean.com/community/tutorials/how-to-optimize-wordpress-
performance-with-mysql-replication-on-ubuntu-14-04
http://wpguru.co.uk/2010/07/testing-hyperdb/
http://codertalks.com/configuring-hyperdb-to-use-multiple-databases-for-buddypress-
multisite/
MySQL Lingo + Discussion
• Replication
• Statement vs Row-based
• Master vs Slave
• Partitioning
• Tends to either really help or really hurt you — very little in between
• NB: One of the reasons NoSQL has market adoption is because this is very painful
• Latency matters: https://gist.github.com/jboner/2841832
• Failover
• Load Balancing
• DB: HyperDB
• Web app: HA Proxy, Nginx, etc
MySQL Performance Basics
• innodb_buffer_pool_size: 70-80% of memory is common
• innodb_buffer_pool_instances: if you have a lot of memory, you might
run into bottlenecks where multiple threads are trying to access the buffer
pool. Splitting it up into multiple buffer pools can help
• innodb_file_per_table: if you are using < MySQL 5.6, turn this on. Trust
me.
• max_connections: if you ever think you need to tweak this, double check
that your connections are terminating properly
• log_bin: your master nodes needs this
• slow-query-log, slow-query-log-file, long_query_time: log your slow
queries. Don’t go crazy, but periodically log everything and analyze it
MySQL Best Practices
Monitor everything
• New Relic, Datadog, Zabbix, graphite/statsd/collectd
• http://www.percona.com/live/mysql-conference-
2013/sites/default/files/slides/percona-live-santa-clara-2013-presentation-
spilgames-mysql-statsd.pdf <— Interesting idea
Analyze your queries
• pt-query-digest, mysqldumpslow, plugins for third party monitoring
Learn how to reason about the Query Execution Plan
• http://www.sitepoint.com/using-explain-to-write-better-mysql-queries/
Schedule DB maintenance
Flavors of MySQL
• MySQL
• MariaDB
• https://mariadb.com/blog/how-install-and-run-
wordpress-mariadb
• Percona:
• https://www.digitalocean.com/community/tutorials/ho
w-to-install-a-fresh-percona-server-or-replace-mysql
Special Mention
Percona Toolkit
• http://www.percona.com/doc/percona-toolkit/2.2/
pt-query-digest --since '2014-11-01' --filter '$event->{arg} =~ m/^select/i' /var/log/mysql/slow-query.log >
/tmp/pt_slow_since_nov2014
Nginx + PHP-FPM
• http://www.raspipress.com/2014/06/tutorial-install-wordpress-on-a-
raspberry-pi-using-nginx/
Learn from people within WordPress and from outside of it
• good example: https://roots.io/twelve-factor-wordpress/

Mais conteúdo relacionado

Mais procurados

Speed up Your Joomla Site for Ultimate Performance
Speed up Your Joomla Site for Ultimate PerformanceSpeed up Your Joomla Site for Ultimate Performance
Speed up Your Joomla Site for Ultimate PerformanceJoomlaDay Australia
 
High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010Barry Abrahamson
 
High Performance WordPress II
High Performance WordPress IIHigh Performance WordPress II
High Performance WordPress IIBarry Abrahamson
 
How to make your Webpack builds 10x faster
How to make your Webpack builds 10x fasterHow to make your Webpack builds 10x faster
How to make your Webpack builds 10x fastertrueter
 
WordPress Plugins and Security
WordPress Plugins and SecurityWordPress Plugins and Security
WordPress Plugins and SecurityThink Media Inc.
 
WordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressWordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressandrewnacin
 
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012WordCamp Sydney
 
Hidden Secrets For A Hack-Proof Joomla! Site
Hidden Secrets For A Hack-Proof Joomla! SiteHidden Secrets For A Hack-Proof Joomla! Site
Hidden Secrets For A Hack-Proof Joomla! SiteDaniel Kanchev
 
Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressRami Sayar
 
Exploring WordPress Multisite
Exploring WordPress MultisiteExploring WordPress Multisite
Exploring WordPress MultisiteLisa Sabin-Wilson
 
How to Speed Up Your Joomla! Site
How to Speed Up Your Joomla! SiteHow to Speed Up Your Joomla! Site
How to Speed Up Your Joomla! SiteDaniel Kanchev
 
DrupalCon Barcelona 2015
DrupalCon Barcelona 2015DrupalCon Barcelona 2015
DrupalCon Barcelona 2015Daniel Kanchev
 
Optimizing WordPress (WordCamp Philly 2011)
Optimizing WordPress (WordCamp Philly 2011)Optimizing WordPress (WordCamp Philly 2011)
Optimizing WordPress (WordCamp Philly 2011)Ben Metcalfe
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?Andy Melichar
 
Speeding Up WordPress sites
Speeding Up WordPress sitesSpeeding Up WordPress sites
Speeding Up WordPress sitesJason Yingling
 

Mais procurados (20)

Speed up Your Joomla Site for Ultimate Performance
Speed up Your Joomla Site for Ultimate PerformanceSpeed up Your Joomla Site for Ultimate Performance
Speed up Your Joomla Site for Ultimate Performance
 
High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010
 
Ithemes presentation
Ithemes presentationIthemes presentation
Ithemes presentation
 
High Performance WordPress II
High Performance WordPress IIHigh Performance WordPress II
High Performance WordPress II
 
How to make your Webpack builds 10x faster
How to make your Webpack builds 10x fasterHow to make your Webpack builds 10x faster
How to make your Webpack builds 10x faster
 
WordPress Plugins and Security
WordPress Plugins and SecurityWordPress Plugins and Security
WordPress Plugins and Security
 
WordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressWordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPress
 
WordPress Multisite
WordPress MultisiteWordPress Multisite
WordPress Multisite
 
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
 
Hidden Secrets For A Hack-Proof Joomla! Site
Hidden Secrets For A Hack-Proof Joomla! SiteHidden Secrets For A Hack-Proof Joomla! Site
Hidden Secrets For A Hack-Proof Joomla! Site
 
Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPress
 
Exploring WordPress Multisite
Exploring WordPress MultisiteExploring WordPress Multisite
Exploring WordPress Multisite
 
How to Speed Up Your Joomla! Site
How to Speed Up Your Joomla! SiteHow to Speed Up Your Joomla! Site
How to Speed Up Your Joomla! Site
 
DrupalCon Barcelona 2015
DrupalCon Barcelona 2015DrupalCon Barcelona 2015
DrupalCon Barcelona 2015
 
Presentation1
Presentation1Presentation1
Presentation1
 
Optimizing WordPress (WordCamp Philly 2011)
Optimizing WordPress (WordCamp Philly 2011)Optimizing WordPress (WordCamp Philly 2011)
Optimizing WordPress (WordCamp Philly 2011)
 
Optimizing wp
Optimizing wpOptimizing wp
Optimizing wp
 
I Can Haz More Performanz?
I Can Haz More Performanz?I Can Haz More Performanz?
I Can Haz More Performanz?
 
Hello npm
Hello npmHello npm
Hello npm
 
Speeding Up WordPress sites
Speeding Up WordPress sitesSpeeding Up WordPress sites
Speeding Up WordPress sites
 

Destaque

WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?Rudá Almeida
 
High performance WordPress
High performance WordPressHigh performance WordPress
High performance WordPressMikel King
 
Paolo avalle discovery chemistry congress2012
Paolo avalle discovery chemistry congress2012Paolo avalle discovery chemistry congress2012
Paolo avalle discovery chemistry congress2012Paolo Avalle
 
Percona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA'sPercona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA'sKarthik .P.R
 
Make great tutorial and product videos
Make great tutorial and product videosMake great tutorial and product videos
Make great tutorial and product videosalledia
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.Nícholas André
 

Destaque (7)

WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?
 
High performance WordPress
High performance WordPressHigh performance WordPress
High performance WordPress
 
Paolo avalle discovery chemistry congress2012
Paolo avalle discovery chemistry congress2012Paolo avalle discovery chemistry congress2012
Paolo avalle discovery chemistry congress2012
 
Percona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA'sPercona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA's
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
Make great tutorial and product videos
Make great tutorial and product videosMake great tutorial and product videos
Make great tutorial and product videos
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
 

Semelhante a HyperDB, MySQL Performance, & Flavors of MySQL

Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsTaylor Lovett
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013hernanibf
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your WebsiteAcquia
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterpriseTaylor Lovett
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!pixelonion
 
DrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilityDrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilitycherryhillco
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile appsMugunth Kumar
 
My site is slow
My site is slowMy site is slow
My site is slowhernanibf
 
Best Practices for WordPress
Best Practices for WordPressBest Practices for WordPress
Best Practices for WordPressTaylor Lovett
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseTaylor Lovett
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
Custom coded projects
Custom coded projectsCustom coded projects
Custom coded projectsMarko Heijnen
 
Big Data Strategy for the Relational World
Big Data Strategy for the Relational World Big Data Strategy for the Relational World
Big Data Strategy for the Relational World Andrew Brust
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQLKonstantin Gredeskoul
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance DrupalChapter Three
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesJonathan Klein
 
11 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 201411 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 2014WordPressBrisbane
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1Derek Jacoby
 

Semelhante a HyperDB, MySQL Performance, & Flavors of MySQL (20)

Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
Top ten-list
Top ten-listTop ten-list
Top ten-list
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterprise
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!
 
DrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalabilityDrupalCampLA 2014 - Drupal backend performance and scalability
DrupalCampLA 2014 - Drupal backend performance and scalability
 
Designing your API Server for mobile apps
Designing your API Server for mobile appsDesigning your API Server for mobile apps
Designing your API Server for mobile apps
 
My site is slow
My site is slowMy site is slow
My site is slow
 
Best Practices for WordPress
Best Practices for WordPressBest Practices for WordPress
Best Practices for WordPress
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in Enterprise
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Custom coded projects
Custom coded projectsCustom coded projects
Custom coded projects
 
Big Data Strategy for the Relational World
Big Data Strategy for the Relational World Big Data Strategy for the Relational World
Big Data Strategy for the Relational World
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
&lt;?php + WordPress
&lt;?php + WordPress&lt;?php + WordPress
&lt;?php + WordPress
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast Websites
 
11 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 201411 Amazing things I Learnt At Word Camp Sydney 2014
11 Amazing things I Learnt At Word Camp Sydney 2014
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
 

Último

Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...MyFAA
 
User Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller ResumeUser Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller ResumeKaylee Miller
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxBarakaMuyengi
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tipsmichealwillson701
 
Steps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic DevelopersSteps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic Developersmichealwillson701
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptxAGATSoftware
 
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurMinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurPriyadarshini T
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energyjeyasrig
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdfOffsiteNOC
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...telebusocialmarketin
 
8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.Ritesh Kanjee
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houstonjennysmithusa549
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfMind IT Systems
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridMathew Thomas
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Inc
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsUniversity of Antwerp
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfICS
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 

Último (20)

Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
 
User Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller ResumeUser Experience Designer | Kaylee Miller Resume
User Experience Designer | Kaylee Miller Resume
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
 
Mobile App Development process | Expert Tips
Mobile App Development process | Expert TipsMobile App Development process | Expert Tips
Mobile App Development process | Expert Tips
 
Steps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic DevelopersSteps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic Developers
 
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
BusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptxBusinessGPT  - SECURITY AND GOVERNANCE  FOR GENERATIVE AI.pptx
BusinessGPT - SECURITY AND GOVERNANCE FOR GENERATIVE AI.pptx
 
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young EntrepreneurMinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
MinionLabs_Mr. Gokul Srinivas_Young Entrepreneur
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energy
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
 
8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.8 Steps to Build a LangChain RAG Chatbot.
8 Steps to Build a LangChain RAG Chatbot.
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houston
 
20140812 - OBD2 Solution
20140812 - OBD2 Solution20140812 - OBD2 Solution
20140812 - OBD2 Solution
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
 
Revolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM GridRevolutionize Your Field Service Management with FSM Grid
Revolutionize Your Field Service Management with FSM Grid
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
 
Practical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdfPractical Advice for FDA’s 510(k) Requirements.pdf
Practical Advice for FDA’s 510(k) Requirements.pdf
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 

HyperDB, MySQL Performance, & Flavors of MySQL

  • 1. Anthropomorphic Design Making a Better WordPress with Jazz Hands + =
  • 3. HyperDB, MySQL Performance, & Flavors of MySQL Evan Volgas
  • 4. About me • 10 years working with data — as an analyst, a DBA, etc • Currently a data engineer for WhatRunsWhere • Data Engineer = DBA + Map Reduce + PTSD from Apache Zookeeper • Worked with WordPress off/on for about ~5 years
  • 5. Disclaimers I believe • Google exists • You can use it • You don’t enjoy reading a bunch of code and config files in a presentation any more than I do • WordCamp needs more cowbell
  • 6. What is HyberDB? • “Very advanced database class” • Powers WordPress.com • Supports replication, partitioning, load balancing, etc
  • 7. “Very advanced database class” find 'hyperdb/' -name '*.php' | xargs wc -l • HyperDB: 1,401 lines of PHP • WordPress: 255,961 lines of PHP • Hello Dolly: 81 lines of PHP • Yoast’s Google Analytics 16,174 lines of PHP
  • 8. Why’d you have to go and make things so complicated • The complexity of HyperDB has nothing to do with the PHP code itself • Implementing HyperDB itself is mostly configuration • To the extent that HyperDB is advanced, it’s because MySQL has a lot of advanced stuff going on underneath the hood
  • 9. Who cares about MySQL? An argument from fellow WordCamp ATL presenter Tom McFarlin* • Employers haven’t fully figured out what WordPress *can* do • WordPress makes it easy to be a software implementer as opposed to a software developer so in a lot of cases salaries probably should be lower • The WordPress community itself hasn’t educated employers, customers, or software implementors how classical software development / engineering can fit into the WordPress ecosystem *https://tommcfarlin.com/wordpress-developer- salary/
  • 10. Tell me again why this matters • We don’t need any more social media icons plugin • Many of the things that are really pushing the WordPress envelope are VERY database intensive and their performance needs are poorly understood • There are a million things you can (and should) do to optimize your WordPress website. When those stop being enough, it’d be a good idea to know some DB basics
  • 11. HyperDB • For practical extents and purposes, it’s kind of like a giant wp-config.php that pertains to your database • A lot of great resources for setting it up. If you decide you want to try it, make sure you check out https://www.digitalocean.com/community/tutorials/how-to-optimize-wordpress- performance-with-mysql-replication-on-ubuntu-14-04 http://wpguru.co.uk/2010/07/testing-hyperdb/ http://codertalks.com/configuring-hyperdb-to-use-multiple-databases-for-buddypress- multisite/
  • 12. MySQL Lingo + Discussion • Replication • Statement vs Row-based • Master vs Slave • Partitioning • Tends to either really help or really hurt you — very little in between • NB: One of the reasons NoSQL has market adoption is because this is very painful • Latency matters: https://gist.github.com/jboner/2841832 • Failover • Load Balancing • DB: HyperDB • Web app: HA Proxy, Nginx, etc
  • 13. MySQL Performance Basics • innodb_buffer_pool_size: 70-80% of memory is common • innodb_buffer_pool_instances: if you have a lot of memory, you might run into bottlenecks where multiple threads are trying to access the buffer pool. Splitting it up into multiple buffer pools can help • innodb_file_per_table: if you are using < MySQL 5.6, turn this on. Trust me. • max_connections: if you ever think you need to tweak this, double check that your connections are terminating properly • log_bin: your master nodes needs this • slow-query-log, slow-query-log-file, long_query_time: log your slow queries. Don’t go crazy, but periodically log everything and analyze it
  • 14. MySQL Best Practices Monitor everything • New Relic, Datadog, Zabbix, graphite/statsd/collectd • http://www.percona.com/live/mysql-conference- 2013/sites/default/files/slides/percona-live-santa-clara-2013-presentation- spilgames-mysql-statsd.pdf <— Interesting idea Analyze your queries • pt-query-digest, mysqldumpslow, plugins for third party monitoring Learn how to reason about the Query Execution Plan • http://www.sitepoint.com/using-explain-to-write-better-mysql-queries/ Schedule DB maintenance
  • 15. Flavors of MySQL • MySQL • MariaDB • https://mariadb.com/blog/how-install-and-run- wordpress-mariadb • Percona: • https://www.digitalocean.com/community/tutorials/ho w-to-install-a-fresh-percona-server-or-replace-mysql
  • 16. Special Mention Percona Toolkit • http://www.percona.com/doc/percona-toolkit/2.2/ pt-query-digest --since '2014-11-01' --filter '$event->{arg} =~ m/^select/i' /var/log/mysql/slow-query.log > /tmp/pt_slow_since_nov2014 Nginx + PHP-FPM • http://www.raspipress.com/2014/06/tutorial-install-wordpress-on-a- raspberry-pi-using-nginx/ Learn from people within WordPress and from outside of it • good example: https://roots.io/twelve-factor-wordpress/