mysql tuning

24
MySQL Tuning Ford AntiTrust

Upload: ford-antitrust

Post on 19-May-2015

8.727 views

Category:

Business


2 download

TRANSCRIPT

Page 1: MySQL Tuning

MySQL Tuning

Ford AntiTrust

Page 2: MySQL Tuning

What ?

“Managing performance of the memory and processing resources of the computer running the DBMS

Page 3: MySQL Tuning

Why ?

Default settings are for toy databases

Page 4: MySQL Tuning

Why ?

Maximum performance (or Optimal between other services) and Maximum speed

Page 5: MySQL Tuning

How ?

• I/O tuning

• Optimize Queries

• Maintenances

• Configurations on DBMS

| today

Page 6: MySQL Tuning

How ?

• I/O tuning

• Configurations on DBMS

| today

Page 7: MySQL Tuning

I/O tuning

The first bottleneck in database performance encountered.

Page 8: MySQL Tuning

I/O tuning | effect

• Transaction logs

• Files associated

– Temporary file storage

– Table file storage

– Index file storage

Page 9: MySQL Tuning

I/O tuning | recommended

• CPU : Disabling HyperThreading• Used different physical storage

– Transaction logs – Temporary file storage – Table file storage– Index file storage

• Hard Drive– 7,200+ rpm– SATA/SCSI

• RAID levels : 5 +– With battery backed up cache may be important.– Not use NAS.

Transaction logs and temporary spaces are heavy consumers of I/O, and affect performance for all users of the database.

Page 10: MySQL Tuning
Page 11: MySQL Tuning

How ?

• I/O tuning

• Configurations on DBMS

| today

Page 12: MySQL Tuning

In Architecture

http://dev.mysql.com/doc/

• Caches• Connections• Thread• Buffer• Temp tables• Index• Storage Engine• File System• Network I/O• Client Library

Page 13: MySQL Tuning

General

• Set ‘sql-mode’– STRICT_TRANS_TABLES– NO_AUTO_CREATE_USER– NO_ENGINE_SUBSTITUTION“

• Set ‘default-storage-engine’– to INNODB

• Not used ‘old_passwords’• Use ‘big-tables’• Use ‘skip-name-resolve’

Page 14: MySQL Tuning

Log

• Use ‘log-slow-queries’ and ‘log-warnings’

– For monitor long time queries and warning messages.

• Set ‘long_query_time’

– For log all queries that have taken more than ‘long_query_time’ seconds

Page 15: MySQL Tuning

Key Buffer

Key Buffer = (Key read requests - Key reads) * 100 / Key read requests

Key blocks unused 27683Key blocks used 1312

Key read requests 1318393Key reads 1344

Page 16: MySQL Tuning

Sort / Read / Join Buffer

• Set ‘sort_buffer_size’– Dynamic by number of ‘ORDER BY’ query

• Set ‘read_buffer_size’– Dynamic by traffic and b/w

• Set ‘read_rnd_buffer_size’– Dynamic by ‘GROUP BY’ or ‘ORDER BY’

• Set ‘join_buffer_size’– Dynamic by join table not use indexes

Page 17: MySQL Tuning

Query Cache

• Set ‘query_cache_size’

– to 10% RAM

• Set ‘query_cache_type’

– to 1, Cache all query results except for those that begin with SELECT SQL_NO_CACHE

• Set ‘query_cache_limit’

– to 5-10% RAM

Page 18: MySQL Tuning

Temp Table

• Set ‘tmp_table_size’

– to 5-10% RAM

• Set ‘max_tmp_tables’ – to 5-10% number of table in all databases

• Set ‘tmpdir’ to different physical drive

Page 19: MySQL Tuning

Thread

• Use ‘skip-thread-priority’

• Set ‘thread_concurrency’

– number of Core CPU * 2

• Set ‘thread_cache_size’ – to 100 - ((threads_created / max_connections) * 100)

Page 20: MySQL Tuning

Table Cache

Open tables 1024Opened tables 1120

table_cache =1024

Page 21: MySQL Tuning

for InnoDB

• Set ‘innodb_buffer_pool_size’– Typical value 60-80% of memory

(If Innodb is only your storage engine)

• Use ‘innodb_file_per_table’• Set ‘innodb_additional_mem_pool_size’

– Do not set too high, avoid memory waste

• Set ‘innodb_flush_log_at_trx_commit’ = 2– Control by OS

• Set ‘innodb_thread_concurrency’– 2*(NumCPUs+NumDisks) – in theory

Page 22: MySQL Tuning

Never ending in tune-up theory

Page 23: MySQL Tuning

References

• Optimizing the mysqld variables, June 15, 2004 (www.databasejournal.com/features/mysql/article.php/3367871)

• MySQL Database Design and Tuning, Robert D. Schneider, SamsPublishing, ISBN: 0-672-32765-1

• InnoDB Architecture and Performance Optimization (OS-DB-CON2006), Peter Zaitsev, Percona Ltd

• InnoDB Performance Optimization Heikki Tuuri, Innobase Oy/Oracle Corp. Peter Zaitsev, Percona Ltd, uc2007 (April 23-26 2007)

• MySQL/Innodb performance optimization Peter Zaitsev, MySQL AB, O'Reilly Open Source Convention 2004 Portland,OR July 26-30

Page 24: MySQL Tuning

THANK YOUFord AntiTrust