Mysql Sorgu Analizi ve Mysql Optimizasyonu

my.cnf dosyasında internetten bulabileceğiniz hazır ayarlar dışında phpMyAdmin ile çalışan sorguları izleyerek optimizasyon yapmanız daha yararlı olacaktır.

Örneğin
Sorgularınızın bir kısmı ‘Query End ‘ durumunda bir süre kalıyorsa my.cnf dosyasına

innodb_flush_log_at_trx_commit = 0

komutunu girerek sorgularınızı hızlandırabilirsiniz.

Yine sorgularınızı inceleyerek sorguların ‘Waiting for query cache lock’ durumunda kaldığını gözlemliyorsanız my.cnf den

query_cache_size = 0
query_cache_type = 0

Komutlarıyla query caching i devre dışı bırakarak performansı gözlemlemelisiniz.

 

innodb_thread_concurrency = 0  #Mysql için oluşturulacak process Sayısı. 
# 0 olarak ayarlandığında mysql kendisi en iyi değeri ayarlayacaktır

 

innodb_flush_log_at_trx_commit = 1 # (Default)
innodb_flush_log_at_trx_commit = 0 # Mysql crash ettiğinde son 1 saniyede yapılan işlemleri öncemsemiyorsanız performans artışı sağlar.
innodb_flush_log_at_trx_commit = 2 # İşletim sistemi crash ettiğinde son 1 saniyede yapılan işlemleri öncemsemiyorsanız performans artışı sağlar.

 

skip-name-resolve # Mysql DNS çözümlemesi yapmaz ilk bağlantıda hız sağlar.

 

Diğer Ayarlar

Global Some Options
-------------------------------------------------------------------------
table_cache (default 64)
- Cache for storing open table handlers
- Increase this if Opened_tables is high

thread_cache (default 0)
- Number of  threads to keep for reuse
- Increase if threads_created is high
- Not useful if the client uses connection pooling

max_connections (default 100)
- The maximum allowed number of simultaneous connections
- Very important for tuning thread specific memory areas
- Each connection uses at least thread_stack of memory


◄◄ MyISAM Options ►►
-------------------------------------------------------------------------
Key_buffer_size (default 8Mb)
- Cache for storing indices
- Increase this to get better index handling
- Miss ratio (key_reads/key_read_requests) should be very low, 
                   at least < 0.03 (often < 0.01 is disarable)

myisam_sort_buffer_size (default 8Mb)
- Used when sorting indexes during REPAIR/ALTER TABLE

myisam_repait_threads (default 1)
- Used for bulk import and repairing
- Allows for repairing indexes in multiple threads

myisam_max_sort_file_size
- The max size of the file used while re-creating indexes

◄◄ InnoDB Optimization ►►
-------------------------------------------------------------------------
innodb_buffer_pool_size (default 8Mb)
- The memory buffer InnoDB uses to cache both data and indexes
- The bigger you set this the less disk i/o needed
- Can be set very hing (up to 80% on a dedicated system)

innodb_flush_log_at_trx_commit (default 1)
- 0 writes and sync's once per second (Not ACID)
- 1 forces sync to disk after every commit
- 2 write to disk every commit but only sync's about onpe per second

innodb_log_buffer_size (default 1Mb)
- Larger values allows for larger transactions to be logged in memory
- Sensible values range from 1M to 8M

innodb_log_file_size (default 5Mb)
- Size of each InnoDB redo log file
- Can be set up to buffer_pool_size
-------------------------------------------------------------------------
                                                 Thanks to Sonali Minocha

 

Yapılmaması Gerekenler Listesi: https://haydenjames.io/my-cnf-tuning-avoid-this-common-pitfall/

Tüm ayarlar global ayarlar değildir bazı ayarlar her bağlantı için ayrı ayrı yapılır.

Posted in SQL