The most common
   MySQL scalability
                 mistakes,
and how to avoid them.
                          2010.08

...
9
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

My website seems to
freeze or responds
randomly?



  The most common MySQL scalability mistakes, and how to avoi...
CAUSE

The default MyISAM
storage engine uses
exclusive table locks for
DML.


   The most common MySQL scalability mistak...
SOLUTION
Optimize blocking query
performance
Use a transactional engine
with MVCC and row based
locking to address the
LOC...
EXAMPLE
Crazy end user report that selects
all customer, order, order lines and
order history data and performs
poor joins...
WHY
MySQL is unique in that it offers
different mechanisms for storing
and retrieving data, each with
strengths and weakne...
HOW
 MySQL PROCESSLIST
   Blocked have State = Locked
   Blocker - Same table, older Time

mysql> SHOW PROCESSLIST;
+----+...
HOW
Optimize Blocker
  Indexes
  Limit query
  Summary table
  Change storage engine

    The most common MySQL scalabilit...
8
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

Why is my database so
large?




  The most common MySQL scalability mistakes, and how to avoid them.
           ...
SOLUTION

Don’t store large static
objects in the database




   The most common MySQL scalability mistakes, and how to a...
EXAMPLE
80% of data is email content/
attachments
60% of data is PDF documents
30% of data is uncompressed large
XML objec...
WHY

Maximize memory usage
for important data
Reduce database recovery
time

   The most common MySQL scalability mistakes...
HOW
Compress large text data
   90% saving on XML data
Store static data in files
   Avoids DB handling overhead



    Th...
HOW
    Table Size per schema
# Schema Table Usage
SELECT   table_schema,table_name,engine,row_format, table_rows, avg_row...
7
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

I can't access my website?




   The most common MySQL scalability mistakes, and how to avoid them.
            ...
TRUE STORY




The most common MySQL scalability mistakes, and how to avoid them.
                                        ...
TRUE STORY
Question:




     The most common MySQL scalability mistakes, and how to avoid them.
                         ...
TRUE STORY
Question:
 How do you know when your server
 is down or not accessible?




     The most common MySQL scalabil...
TRUE STORY
Question:
 How do you know when your server
 is down or not accessible?
Answer:



     The most common MySQL s...
TRUE STORY
Question:
 How do you know when your server
 is down or not accessible?
Answer:
 The users will let us know.


...
SOLUTION
Monitoring
Alerting
Dashboard
Status Site



    The most common MySQL scalability mistakes, and how to avoid the...
HOW
Monitoring/Alerting
  Graphical
  Historical
  Necessary
  Generally missing/incomplete
  Useless for real-time analys...
HOW
Dashboard
 The state of NOW
 Sampling at 1s/3s/5s
   e.g. 0.1% of throughput



   The most common MySQL scalability m...
HOW
Instrumentation
 Important to business viability
   e.g. orders per minute
   page load time
 Seamless implementation
...
HOW
Have a status website
 allow for comments (e.g. blog)
Have a public dashboard website

Host them somewhere else!

   T...
6
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

My replication slave can't
keep up?




   The most common MySQL scalability mistakes, and how to avoid them.
   ...
SOLUTION

Know the weakest link(s)
of MySQL replication and
don't exceed that,
or cheat.


   The most common MySQL scalab...
WHY

If replication can't catchup,
slaves are useless.
Backup & recovery may
also suffer.

   The most common MySQL scalab...
HOW
Master
  DML Statement
  Write Data/Redo Log
  Write Binary Log
  Return OK to client



         The most common MySQ...
HOW
Slave
  Detect master log change
  Retrieve binary log entry
  Write relay log (IO_THREAD)
  Read relay log
  Apply DM...
HOW
Clever workarounds
  Restrict queries executed
    --ignore
  Different storage engines
  Different index structures

...
EXPERT TIP
Cheating
  RAID 0 (large number of slaves)
  Pre fetch thread




   The most common MySQL scalability mistakes...
5
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

My server has crashed with
a hard drive failure




   The most common MySQL scalability mistakes, and how to avo...
TRUE STORY
Question:
 Have you ever performed a database recovery?

Answer:
 No, why?




      The most common MySQL scal...
TRUE STORY
Consultant:
 Do you know that your daily backups only
 recover the data up to that time, e.g. 1am. You
 know yo...
SOLUTION
Have a DR Plan
  Documented
  Tested
  Timed
  Verified - End to End

   The most common MySQL scalability mistak...
HOW
Do you pass the MySQL backup/
recovery quiz?


http://rb42.com/mysql-backup-quiz



    The most common MySQL scalabil...
QUIZ
1.  Do you have MySQL backups in place?
2.  Do you backup ALL your MySQL data?
3.  Do you have consistent MySQL backu...
4
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

Why is my database
executing 1,200 qps
for 50 users?



   The most common MySQL scalability mistakes, and how to...
SOLUTION

Determine what queries
are running and why they
are running?



   The most common MySQL scalability mistakes, a...
CAUSE

Excessive SQL statements
 Duplicate
 Redundant
 Cachable
 Row at a time (RAT)
   The most common MySQL scalability ...
WHY

Reducing SQL load both
improves performance now
and provides greater
capacity as you scale


  The most common MySQL ...
EXAMPLE
SELECT   option_name,   option_value FROM wp_options WHERE autoload = 'yes'
SELECT   option_value   FROM wp_option...
EXAMPLE
  SELECT    *   FROM   activities_theme          WHERE    theme_parent_id=0
  SELECT    *   FROM   activities_them...
EXAMPLE
  5   Query   SELECT   *   FROM   `artist`
  5   Query   SELECT   *   FROM   `artist`
  5   Query   SELECT   *   F...
EXAMPLE
  SELECT pages_id, pages_livestats_code, pages_title,
         pages_parent, pages_exhibid, pages_theme,
         ...
HOW

Capture & Analyze
DML is easy
SELECT is harder
http://www.slideshare.net/ronaldbradford/capturing-analyzing-and-optim...
HOW
    MySQL Binary (Redo) Log
         mysqlbinlog
           mk-query-digest
           One Liner
http://ronaldbradford...
HOW
Process List
General Log
tcpdump
Application



    The most common MySQL scalability mistakes, and how to avoid them....
HOW
Capturing, Analyzing and Optimizing
your SQL
  http://www.slideshare.net/ronaldbradford/capturing-analyzing-and-
  opt...
EXPERT TIP
/* Comment your queries */
The more products you have, the
more developers you have, the
more time you spend in...
3
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

The database is slow.
My webpage takes five
seconds to load.



   The most common MySQL scalability mistakes, an...
SOLUTION

Evaluate the time taken in
the database and all
stages in between



   The most common MySQL scalability mistak...
EXAMPLE
Client example showed a webpage
taking 5 seconds to load. The html
component was taking only 400 ms.
Any MySQL per...
WHY

Performance is important
to end user
Performance is perception



   The most common MySQL scalability mistakes, and ...
HOW
Firebug - http://getfirebug.com/
Httpwatch - http://httpwatch.com/
Page speed - http://code.google.com/speed/page-spee...
EXPERT TIP
http://www.stevesouders.com/
http://developer.yahoo.com/
performance/rules.html




    The most common MySQL s...
2
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

I want to add new H/W.
How do I change my
application to support this?



   The most common MySQL scalability mi...
SOLUTION

Develop a seamless
integration that requires no
code changes, no downtime
and very little additional
physical re...
HOW
Integrated monitoring and
instrumentation
  Deployed from Day 1




    The most common MySQL scalability mistakes, an...
HOW
Seamless automated server
deployment
  Version Control
  Build & Release
  Runtime config management
  Automated disco...
HOW
API
 One code path for business
 functionality
 Implied business documentation
 Enforced data exchange standard
 Testa...
HOW
Different levels of data availability
   Read & Write
   Read Only
   No Access
   Cached

    The most common MySQL s...
HOW
Different principles for scalability
   Read Scalability
   Write Scalability
   Caching



    The most common MySQL ...
1
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
PROBLEM

My website is slow?




   The most common MySQL scalability mistakes, and how to avoid them.
                   ...
SOLUTION

Seek professional advice.
Hire for example Ronald
Bradford.



   The most common MySQL scalability mistakes, an...
WHY
20+ years of system architecture,
database design and performance
tuning.
Employment as Senior Consultant
with both Or...
HOW
http://ronaldbradford.com
me@ronaldbradford.com
Take my business card



 The most common MySQL scalability mistakes, ...
R
The most common MySQL scalability mistakes, and how to avoid them.
                                                  @Ro...
RECAP
Monitoring. Before, during and after NOW.
You may not be able to predict the future
but you can preempt the future.
...
RECAP
3 levels of real time data access.
   Read/Write, Read and no access
3 aspects of scalability.
   Read, Write and Ca...
Not covered
My web pages are timing out
My website takes a long time to aggregate
results




     The most common MySQL s...
REFERENCE
Successful MySQL Scalability
1. Integrated monitoring & instrumentation
2. Seamless automated server deployment
...
CONTACT
http://ronaldbradford.com
me@ronaldbradford.com




 The most common MySQL scalability mistakes, and how to avoid ...
Upcoming SlideShare
Loading in...5
×

Common MySQL Scalability Mistakes and how to avoid them.

9,343

Published on

The most common mistakes are easy to avoid however many startups continue to fall prey, with the impact including large re-design costs, delays in new feature releases, lower staff productivity and less then ideal ROI. All growing and successful sites need to achieve higher Availability, seamless Scalability and proven Resilience. Know the right MySQL environment to provide a suitable architecture and application design to support these essential needs.

Presented at Surge Scalability -- http://omniti.com/surge/2010

Published in: Technology
1 Comment
15 Likes
Statistics
Notes
No Downloads
Views
Total Views
9,343
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
422
Comments
1
Likes
15
Embeds 0
No embeds

No notes for slide

Transcript of "Common MySQL Scalability Mistakes and how to avoid them."

  1. 1. The most common MySQL scalability mistakes, and how to avoid them. 2010.08 Ronald Bradford www.RonaldBradford.com The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  2. 2. 9 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  3. 3. PROBLEM My website seems to freeze or responds randomly? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  4. 4. CAUSE The default MyISAM storage engine uses exclusive table locks for DML. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  5. 5. SOLUTION Optimize blocking query performance Use a transactional engine with MVCC and row based locking to address the LOCKING issue The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  6. 6. EXAMPLE Crazy end user report that selects all customer, order, order lines and order history data and performs poor joins. This takes shared read locks blocking future write locks then future reads. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  7. 7. WHY MySQL is unique in that it offers different mechanisms for storing and retrieving data, each with strengths and weaknesses. The DEFAULT is not always the best. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  8. 8. HOW MySQL PROCESSLIST Blocked have State = Locked Blocker - Same table, older Time mysql> SHOW PROCESSLIST; +----+------+-----------+-------+---------+------+------------+--------------- | Id | User | Host | db | Command | Time | State | Info +----+------+-----------+-------+---------+------+------------+--------------- | 13 | root | localhost | odtug | Query | 144 | User sleep | UPDATE test1 ... | 14 | root | localhost | odtug | Query | 116 | Locked | select * from test1 | 15 | root | localhost | odtug | Query | 89 | Locked | select * from test1 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  9. 9. HOW Optimize Blocker Indexes Limit query Summary table Change storage engine The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  10. 10. 8 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  11. 11. PROBLEM Why is my database so large? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  12. 12. SOLUTION Don’t store large static objects in the database The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  13. 13. EXAMPLE 80% of data is email content/ attachments 60% of data is PDF documents 30% of data is uncompressed large XML objects The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  14. 14. WHY Maximize memory usage for important data Reduce database recovery time The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  15. 15. HOW Compress large text data 90% saving on XML data Store static data in files Avoids DB handling overhead The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  16. 16. HOW Table Size per schema # Schema Table Usage SELECT table_schema,table_name,engine,row_format, table_rows, avg_row_length, (data_length+index_length)/1024/1024 as total_mb, (data_length)/1024/1024 as data_mb, (index_length)/1024/1024 as index_mb, CURDATE() AS today FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY 7 DESC; The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  17. 17. 7 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  18. 18. PROBLEM I can't access my website? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  19. 19. TRUE STORY The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  20. 20. TRUE STORY Question: The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  21. 21. TRUE STORY Question: How do you know when your server is down or not accessible? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  22. 22. TRUE STORY Question: How do you know when your server is down or not accessible? Answer: The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  23. 23. TRUE STORY Question: How do you know when your server is down or not accessible? Answer: The users will let us know. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  24. 24. SOLUTION Monitoring Alerting Dashboard Status Site The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  25. 25. HOW Monitoring/Alerting Graphical Historical Necessary Generally missing/incomplete Useless for real-time analysis The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  26. 26. HOW Dashboard The state of NOW Sampling at 1s/3s/5s e.g. 0.1% of throughput The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  27. 27. HOW Instrumentation Important to business viability e.g. orders per minute page load time Seamless implementation i.e. no code changes to view real-time extensible The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  28. 28. HOW Have a status website allow for comments (e.g. blog) Have a public dashboard website Host them somewhere else! The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  29. 29. 6 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  30. 30. PROBLEM My replication slave can't keep up? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  31. 31. SOLUTION Know the weakest link(s) of MySQL replication and don't exceed that, or cheat. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  32. 32. WHY If replication can't catchup, slaves are useless. Backup & recovery may also suffer. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  33. 33. HOW Master DML Statement Write Data/Redo Log Write Binary Log Return OK to client The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  34. 34. HOW Slave Detect master log change Retrieve binary log entry Write relay log (IO_THREAD) Read relay log Apply DML (SQL_THREAD) Write Data/redo log The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  35. 35. HOW Clever workarounds Restrict queries executed --ignore Different storage engines Different index structures The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  36. 36. EXPERT TIP Cheating RAID 0 (large number of slaves) Pre fetch thread The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  37. 37. 5 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  38. 38. PROBLEM My server has crashed with a hard drive failure The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  39. 39. TRUE STORY Question: Have you ever performed a database recovery? Answer: No, why? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  40. 40. TRUE STORY Consultant: Do you know that your daily backups only recover the data up to that time, e.g. 1am. You know you have lost all your sales and changes since then. Customer: No, I didn’t know that. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  41. 41. SOLUTION Have a DR Plan Documented Tested Timed Verified - End to End The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  42. 42. HOW Do you pass the MySQL backup/ recovery quiz? http://rb42.com/mysql-backup-quiz The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  43. 43. QUIZ 1. Do you have MySQL backups in place? 2. Do you backup ALL your MySQL data? 3. Do you have consistent MySQL backups? 4. Do you have backups that include both static snapshot and point in time transactions? 5. Do you review your backup logs EVERY SINGLE day or have tested backup monitoring in place? 6. Do you perform a test recovery of your static backup? 7. Do you perform a test recovery to point in time? 8. Do you time your backup and recovery process and review over time? 9. Do you have off-site copies of your backups? 10. Do you backup your primary binary logs? http://rb42.com/mysql-backup-quiz The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  44. 44. 4 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  45. 45. PROBLEM Why is my database executing 1,200 qps for 50 users? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  46. 46. SOLUTION Determine what queries are running and why they are running? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  47. 47. CAUSE Excessive SQL statements Duplicate Redundant Cachable Row at a time (RAT) The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  48. 48. WHY Reducing SQL load both improves performance now and provides greater capacity as you scale The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  49. 49. EXAMPLE SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes' SELECT option_value FROM wp_options WHERE option_name = 'aiosp_title_format' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'ec3_show_only_even' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'ec3_num_months' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'ec3_day_length' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'ec3_hide_event_box' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'ec3_advanced' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'ec3_navigation' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'ec3_disable_popups' LIMIT 1 SELECT option_value FROM wp_options WHERE option_name = 'sidebars_widgets' LIMIT 1 http://ronaldbradford.com/blog/we-need-more-cats-2009-08-22/ The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  50. 50. EXAMPLE SELECT * FROM activities_theme WHERE theme_parent_id=0 SELECT * FROM activities_theme WHERE theme_parent_id=1 SELECT * FROM activities_theme WHERE theme_parent_id=2 SELECT * FROM activities_theme WHERE theme_parent_id=11 SELECT * FROM activities_theme WHERE theme_parent_id=16 SELECT * FROM activities_theme WHERE theme_parent_id in (0,1,2,11,16) http://ronaldbradford.com/blog/optimizing-sql-performance-the-art-of-elimination-2010-07-08/ The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  51. 51. EXAMPLE 5 Query SELECT * FROM `artist` 5 Query SELECT * FROM `artist` 5 Query SELECT * FROM `artist` 5 Query SELECT * FROM `artist` 5 Query SELECT * FROM `artist` 5 Query SELECT * FROM `artist` WHERE (ArtistID = 196 ) 5 Query SELECT * FROM `artist` WHERE (ArtistID = 2188 ) 5 Query SELECT * FROM `artist` 5 Query SELECT * FROM `artist` 5 Query SELECT * FROM `artist` http://ronaldbradford.com/blog/optimizing-sql-performance-the-art-of-elimination-2010-07-08/ The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  52. 52. EXAMPLE SELECT pages_id, pages_livestats_code, pages_title, pages_parent, pages_exhibid, pages_theme, pages_accession_num FROM pages WHERE pages_id = 0 5 minutes 6000 executions 0 is out of bounds http://ronaldbradford.com/blog/optimizing-sql-performance-the-art-of-elimination-2010-07-08/ The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  53. 53. HOW Capture & Analyze DML is easy SELECT is harder http://www.slideshare.net/ronaldbradford/capturing-analyzing-and-optimizing-mysql The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  54. 54. HOW MySQL Binary (Redo) Log mysqlbinlog mk-query-digest One Liner http://ronaldbradford.com/blog/mysql-dml-stats-per-table-2009-09-09/ The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  55. 55. HOW Process List General Log tcpdump Application The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  56. 56. HOW Capturing, Analyzing and Optimizing your SQL http://www.slideshare.net/ronaldbradford/capturing-analyzing-and- optimizing-mysql The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  57. 57. EXPERT TIP /* Comment your queries */ The more products you have, the more developers you have, the more time you spend in code identification before you can even determine a resolution The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  58. 58. 3 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  59. 59. PROBLEM The database is slow. My webpage takes five seconds to load. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  60. 60. SOLUTION Evaluate the time taken in the database and all stages in between The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  61. 61. EXAMPLE Client example showed a webpage taking 5 seconds to load. The html component was taking only 400 ms. Any MySQL performance improvement will only tune 8% of the total time. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  62. 62. WHY Performance is important to end user Performance is perception The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  63. 63. HOW Firebug - http://getfirebug.com/ Httpwatch - http://httpwatch.com/ Page speed - http://code.google.com/speed/page-speed/ YSlow - http://developer.yahoo.com/yslow/ wget/curl Application code instrumentation The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  64. 64. EXPERT TIP http://www.stevesouders.com/ http://developer.yahoo.com/ performance/rules.html The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  65. 65. 2 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  66. 66. PROBLEM I want to add new H/W. How do I change my application to support this? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  67. 67. SOLUTION Develop a seamless integration that requires no code changes, no downtime and very little additional physical resources. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  68. 68. HOW Integrated monitoring and instrumentation Deployed from Day 1 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  69. 69. HOW Seamless automated server deployment Version Control Build & Release Runtime config management Automated discovery The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  70. 70. HOW API One code path for business functionality Implied business documentation Enforced data exchange standard Testability The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  71. 71. HOW Different levels of data availability Read & Write Read Only No Access Cached The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  72. 72. HOW Different principles for scalability Read Scalability Write Scalability Caching The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  73. 73. 1 The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  74. 74. PROBLEM My website is slow? The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  75. 75. SOLUTION Seek professional advice. Hire for example Ronald Bradford. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  76. 76. WHY 20+ years of system architecture, database design and performance tuning. Employment as Senior Consultant with both Oracle Corporation (96-99) and MySQL Inc (06-08) The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  77. 77. HOW http://ronaldbradford.com me@ronaldbradford.com Take my business card The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  78. 78. R The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  79. 79. RECAP Monitoring. Before, during and after NOW. You may not be able to predict the future but you can preempt the future. Choose the best product and features for you needs. The best SQL statement is the one you never have to execute. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  80. 80. RECAP 3 levels of real time data access. Read/Write, Read and no access 3 aspects of scalability. Read, Write and Caching Operate below 90% capacity. That 10% is your insurance. The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  81. 81. Not covered My web pages are timing out My website takes a long time to aggregate results The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  82. 82. REFERENCE Successful MySQL Scalability 1. Integrated monitoring & instrumentation 2. Seamless automated server deployment 3. Disaster is inevitable 4. Application Programming Interface 5. Support different levels of data availability 6. Support different scalability principles The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  83. 83. CONTACT http://ronaldbradford.com me@ronaldbradford.com The most common MySQL scalability mistakes, and how to avoid them. @RonaldBradford #surgecon
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×