Hatalı yapılandırılmış parametreler, ApsaraDB RDS for MySQL örneğinizde performansı düşürebilir veya uygulama hatalarına neden olabilir. Bu konuda, anahtar parametreler için önerilen değerler ve ayarlama rehberliği sunulmaktadır.
Parametre tanılama
ApsaraDB RDS for MySQL, parametre tanılama özelliğini destekler. Bu özellik, uzmanlar tarafından tanımlanan kurallar ve formüller ışığında örneğinizin mevcut ayarlarını analiz eder ve ayarlama önerileri sunar. Örneğinizi optimize etmek için bu konudaki rehberlikle birlikte parametre tanılama özelliğini kullanın.
Parametre şablonları, yaygın senaryolar için önceden ayarlanmış değerlerle bir başlangıç noktası sağlar. Ancak uygulamada, anahtar parametrelerin iş yükünüze uygun olacak şekilde ayarlanması gerekir; çünkü varsayılan değerler her kullanım durumu için optimize edilmemiştir.
Varsayılan parametre değerlerini ApsaraDB RDS konsolunda görüntüleyin.
Yeniden başlatma davranışı
Kapsamı Global,Session olan bazı parametreler — MySQL 8.0 ve MySQL 5.7 belgelerinde belirtildiği gibi — yalnızca yeniden bağlantı veya yeniden başlatma sonrası etkinleşir. Örneği yeniden başlatmak kısa süreli bir bağlantı kesintisine neden olur. Yeniden başlatma işlemlerini yoğun olmayan saatlerde planlayın.
Parametre referansı
Bağlantı yönetimi
back_log
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6, 5.5 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Örnek çok sayıda kısa ömürlü bağlantıyı işlediğinde bağlantı kuyruğunun uzunluğunu kontrol eder. Kuyruk dolduğunda örnek yeni bağlantı isteklerini reddeder.
Belirti: Çok küçük bir değer aşağıdaki uygulama hatasına neden olur:
SQLSTATE[HY000] [2002] Connection timed out
Önerilen değer: 3000
net_write_timeout
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6, 5.5 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Örneğin bir istemciye blok göndermeden önce ne kadar süre bekleyeceğini ayarlar.
Belirti: Çok küçük bir değer aşağıdaki istemci hatasına neden olur:
"the last packet successfully received from the server was milliseconds ago"
"the last packet sent successfully to the server was milliseconds ago"
Önerilen değer: 60 (saniye, varsayılan değer). Ağ kararsızsa veya istemci her bloğu işlemek için uzun zaman harcıyorsa, beklenmeyen bağlantı kesintilerini önlemek için bu değeri artırın.
innodb_lock_wait_timeout
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Bir InnoDB işleminin iptal edilmeden önce satır kilidi için maksimum ne kadar süre (saniye cinsinden) bekleyeceğini ayarlar.
Önerilen değer: 50
Eşzamanlılık ve iş parçacığı yönetimi
innodb_thread_concurrency
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
InnoDB içindeki eşzamanlı iş parçacıklarının maksimum sayısını ayarlar. 0 değeri limiti kaldırır.
Önerilen değer: Yüksek eşzamanlılık performans sorunlarını gidermediğiniz sürece 0 (sınırsız).
loose_rds_threads_running_high_watermark
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 5.6, 5.5 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Toplam eşzamanlı sorgu sayısını sınırlar. Örneğin, bunu 100 olarak ayarlamak en fazla 100 eşzamanlı MySQL sorgusuna izin verir; ek sorgular reddedilir.
Bu parametreyi, örneği ani trafik artışlarına ve yoğun saatlerdeki aşırı yüke karşı korumak için kullanın.
thread_pool_enabled
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
İş parçacığı havuzu özelliğini etkinleştirir veya devre dışı bırakır.
Önerilen değer: ON
thread_pool_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
İş parçacığı havuzundaki iş parçacığı gruplarının sayısını ayarlar.
Önerilen değer: {LEAST(DBInstanceClassCPU × 2, 64)}
thread_pool_oversubscribe
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Her iş parçacığı grubu başına etkin iş parçacıklarının maksimum sayısını ayarlar.
Önerilen değer: 32
thread_stack
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Her kullanıcı iş parçacığı için yığın derinliğini ayarlar. Çok küçük bir değer, derin özyinelemeli SQL sorgularının başarısız olmasına neden olur.
Önerilen değer: 1048576
Arabellek havuzu ve bellek
innodb_buffer_pool_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | MySQL 8.0 ve 5.7: Hayır / MySQL 5.6: Evet |
| Geçici bağlantı kesintisi | MySQL 8.0 ve 5.7: Hayır / MySQL 5.6: Evet — Yoğun olmayan saatlerde değiştirin |
InnoDB arabellek havuzunun boyutunu ayarlar; bu alan, tablo ve dizin verilerini önbelleğe almak için kullanılan birincil bellek alanıdır. Doğru boyutlandırılmış bir arabellek havuzu, çalışma kümenizin (sorgularınızın en sık eriştiği veriler ve dizinler) bellekte kalmasını sağlayarak disk G/Ç'sini önemli ölçüde azaltır.
Önerilen değer: {DBInstanceClassMemory × 3/4}
innodb_buffer_pool_instances
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Eşzamanlı okuma ve yazmaları desteklemek için arabellek havuzunu birden fazla bağımsız olarak yönetilen örneğe böler. Yalnızca innodb_buffer_pool_size 1 GB'yi aştığında uygulanır.
Önerilen değer: {LEAST(DBInstanceClassMemory/1073741824, 8)}
innodb_max_dirty_pages_pct_lwm
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Ön temizlemeyi tetikleyen kirli sayfa yüzdesi eşiğini ayarlar. Değer, innodb_max_dirty_pages_pct değerinden küçük olmalıdır. 0 olarak ayarlanması ön temizlemeyi devre dışı bırakır.
Önerilen değer: 10
innodb_lru_scan_depth
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Kirli sayfaları temizlerken sayfa temizleyici iş parçacıklarının her arabellek havuzu örneğinde En Az Kullanılan (LRU) listesini ne kadar derin tarayacağını ayarlar.
Önerilen değer: {LEAST(DBInstanceClassMemory/1048576/8, 8192)}
innodb_page_cleaners
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Arabellek havuzu örneklerinden kirli sayfaları temizlemek için kullanılan sayfa temizleyici iş parçacıklarının sayısını ayarlar. Bu değer arabellek havuzu örneklerinin sayısını aşarsa sistem otomatik olarak değeri innodb_buffer_pool_instances değerinde sınırlar. Varsayılan değer 4 şeklindedir.
Önerilen değer: 8
tmp_table_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6, 5.5 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
İş parçacığı başına dahili bellek içi geçici tablonun maksimum boyutunu ayarlar. Etkili sınır, tmp_table_size veya max_heap_table_size değerlerinden hangisi daha küçükse odur. Geçici bir tablo bu sınırı aştığında MySQL bunu diske dayalı bir tabloya dönüştürür (MySQL 8.0'da InnoDB; önceki sürümlerde MyISAM).
Belirti: Bir dizin tarafından karşılanamayan GROUP BY veya DISTINCT içeren karmaşık sorgular, geçici tablolar diske taşındığında daha yavaş çalışır.
Varsayılan değer: 2097152. Sorgularda çok sayıda GROUP BY veya DISTINCT yan tümcesi varsa ve örnekte yeterli bellek bulunuyorsa bu değeri artırın.
G/Ç ve temizleme performansı
innodb_io_capacity
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
InnoDB arka plan görevlerinin tüketebileceği saniye başına maksimum G/Ç işlemi sayısını ayarlar.
Önerilen değer: 20000
innodb_io_capacity_max
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Temizleme işlemi yapılandırılan oranın gerisinde kaldığında InnoDB'nin kullanabileceği maksimum IOPS değerini ayarlar.
Önerilen değer: 40000
innodb_flush_neighbors
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
InnoDB'nin kirli bir sayfayı temizlerken komşu kirli sayfaları da temizleyip temizlemeyeceğini kontrol eder. Geçerli değerler:
0: Yalnızca hedef kirli sayfayı temizler.1: Hedef sayfayı ve aynı genişletme birimindeki komşularını temizler.2: Aynı genişletme birimindeki tüm kirli sayfaları temizler.
Önerilen değer: 0
innodb_change_buffering
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Rastgele G/Ç'yi sıralı G/Ç'ye dönüştürmek için ikincil dizinlerdeki yazma işlemlerini erteler. Bu durum HDD'lerde yardımcı olur ancak modern depolama donanımında sınırlı fayda sağlar.
Önerilen değer: none
Redo log
innodb_log_file_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Redo log grubundaki her bir log dosyasının boyutunu ayarlar. Toplam redo log boyutu innodb_log_file_size × innodb_log_files_in_group şeklindedir ve 512 GB'yi aşamaz. Varsayılan değer 48 MB'tir.
Daha büyük bir log dosyası kontrol noktası sıklığını ve disk G/Ç'sini azaltır ancak kurtarma süresini uzatır. Bu değeri, örneğin yoğun ve yoğun olmayan saatler arasındaki G/Ç farkını yumuşatarak bir saatten fazla yazma trafiğini işleyebilecek kadar büyük ayarlayın.
Önerilen değer: Örnek teknik özelliklerinize göre yapılandırın.
Dosya tanıtıcıları
open_files_limit
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Örneğin aynı anda açabileceği dosya tanıtıcısı sayısını ayarlar. innodb_open_files değerini de etkiler.
Önerilen değerler:
MySQL 5.6:
65535MySQL 5.7 ve 8.0:
655350
32 veya daha fazla CPU çekirdeğine ve çok sayıda etkin oturuma veya tabloya sahip örnekler için bu değeri örnek dosyalarının gerçek sayısının biraz üzerine ayarlayın.
innodb_open_files
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
InnoDB'nin aynı anda açık tutabileceği maksimum dosya tanıtıcısı sayısını ayarlar.
Belirti: Çok küçük bir değer performansı düşüren aşağıdaki uyarıya neden olur:
[Warning] [MY-012152] [InnoDB] Open files * exceeds the limit *
Önerilen değer: 20000
table_open_cache
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Sunucunun tüm tablo önbelleği örneklerinde açık tuttuğu maksimum tablo sayısını ayarlar. Çok küçük bir değer yüksek eşzamanlılıkta sorgu performansını düşürür; çok büyük bir değer ise bellek tüketimini artırır. Bu değeri artırırken bellek kullanımını izleyin.
Önerilen değer: {LEAST(DBInstanceClassMemory/1073741824 × 1024, 16384)}
table_open_cache_instances
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Tablo önbelleğini, her biri table_open_cache / table_open_cache_instances boyutunda olan ayrı örneklere böler. Bu işlem, oturumlar arasında tablo önbelleği üzerindeki çekişmeyi azaltır.
Önerilen değer: 16
Otomatik artış ve kilitleme
innodb_autoinc_lock_mode
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6, 5.5 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
InnoDB'nin otomatik artışlı birincil anahtarlar için otomatik artış kilitlerini nasıl yönettiğini kontrol eder. Geçerli değerler:
0(geleneksel): AUTO-INC kilidini ifadenin tamamı boyunca tutar. INSERT eşzamanlılığını önemli ölçüde sınırlar.1(ardışık, varsayılan): AUTO-INC kilidini kısa süreli tutar. Sabit satır eklemeleri için hemen serbest bırakır; değişken satır eklemeleri için ifadenin tamamı boyunca tutar.2(birbirine karışmış): Satır sayısının sabit olup olmadığına bakmaksızın değer atandığı anda AUTO-INC kilidini serbest bırakır.
Önerilen değer: 2. Bu değer AUTO-INC kilitlenmelerini ortadan kaldırır ve INSERT … SELECT performansını iyileştirir.
Bu değeri 2 olarak ayarlamak için binary log formatının ROW olması gerekir.
innodb_adaptive_hash_index
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
InnoDB'nin sorgu kalıplarına göre arabellek havuzu sayfalarını hızlıca bulmasına yardımcı olan uyarlamalı hash dizinini etkinleştirir veya devre dışı bırakır.
Belirti: Etkinleştirildiğinde (ON), özellikle DDL olmak üzere belirli ifadeler uyarlamalı hash dizini bakımını tetikleyerek diğer sorguları engelleyebilir veya performansı düşürebilir.
Önerilen değer: OFF. Arka plan bilgisi için bkz. ApsaraDB RDS for MySQL'de uyarlamalı hash dizinleri için en iyi uygulamalar.
Çoğaltma
rpl_semi_sync_master_timeout
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Bir işlem commit edilmeden önce birincil RDS örneğinin ikincil RDS örneğinden binary logların alındığına dair onay bekleyeceği süreyi ayarlar. Zaman aşımı aşılırsa çoğaltma yarı eşzamanlıdan eşzamansıza düşer. İkincil örnek yakaladığında çoğaltma otomatik olarak yarı eşzamanlı moda geri döner.
Önerilen değer: 1000 (milisaniye, 1 saniyeye eşittir). Yüksek veri güvenilirliği gerektiren iş yükleri için eşzamansız çoğaltmaya düşmeyi önlemek amacıyla bu değeri artırın. Büyük bir değerin uzun süren işlemler sırasında yazma isteklerinin durmasına neden olabileceğini ve bunun da yüksek kullanılabilirlik (HA) bileşeninin örnek arızası algılayıp örnek değiştirmeyi başlatmasına yol açabileceğini unutmayın.
slave_parallel_workers
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
İkincil RDS örneğindeki paralel oynatma iş parçacıklarının sayısını ayarlar. Çok az iş parçacığı paralel oynatma aktarım hızını sınırlar ve çoğaltma gecikme süresini artırır.
Önerilen değer: {GREATEST(DBInstanceClassCPU, 8)}
binlog_transaction_dependency_tracking
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0 (küçük sürüm ≥ 20210930), MySQL 5.7 (küçük sürüm ≥ 20211231) |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
MySQL'in paralel çoğaltma için işlem bağımlılıklarını nasıl izlediğini belirtir. Bu değeri WRITESET olarak ayarlamak satır düzeyinde çakışma algılamayı etkinleştirerek ikincil RDS örneğinde daha hızlı paralel oynatmaya olanak tanır.
Önerilen değer: WRITESET. Bu parametreyi değiştirmeden önce transaction_write_set_extraction değerini ayarlayın. Ayrıntılar için bkz. WRITESET ile ilgili parametreleri değiştirme.
binlog_transaction_dependency_history_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0 (küçük sürüm ≥ 20210930), MySQL 5.7 (küçük sürüm ≥ 20211231) |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Bağımlılık izleme için bellekte tutulan hash işlem girişlerinin maksimum sayısını ayarlar. Sınıra ulaşıldığında tüm girişler temizlenir.
Belirti: Çok küçük bir değer ikincil RDS örneğindeki paralel oynatma eşzamanlılığını azaltarak çoğaltma gecikme süresini artırır.
Önerilen değer: 500000. Ayrıntılar için bkz. WRITESET ile ilgili parametreleri değiştirme.
transaction_write_set_extraction
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0 (küçük sürüm ≥ 20210930), MySQL 5.7 (küçük sürüm ≥ 20211231) |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
WRITESET tarafından kullanılan hash algoritmasını ayarlar.
Önerilen değer: XXHASH64. Ayrıntılar için bkz. WRITESET ile ilgili parametreleri değiştirme.
Sorgu önbelleği (MySQL 5.7 ve önceki sürümler)
query_cache_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 5.7, 5.6, 5.5 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
MySQL sorgu önbelleğine ayrılan belleği kontrol eder. Etkinleştirildiğinde MySQL bir sorguyu yürütmeden önce önbelleği kontrol eder. Yazma işleminin nadir olduğu okuma ağırlıklı iş yüklerinde bu durum performansı iyileştirebilir. Yazma ağırlıklı iş yüklerinde sorgu önbelleğinin kilit mekanizması SELECT performansını düşüren sık çakışmalara neden olur.
Belirti: Birçok bağlantı şu durumlarda takılır:
checking query cache for query
waiting for query cache lock
storing result in query cache
Önerilen değer: Devre dışı bırakın (ApsaraDB RDS varsayılanı). Daha önce sorgu önbelleğini etkinleştirdiyseniz ve yukarıdaki belirtileri görüyorsanız devre dışı bırakın.
Sorgu optimize edici
eq_range_index_dive_limit
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Optimize edicinin eşitlik aralığı koşulları için dizin dalışlarından istatistik tabanlı tahmine ne zaman geçeceğini kontrol eder. Şu gibi bir sorgu için:
col_name IN (val1, ..., valN)
col_name = val1 OR ... OR col_name = valN
N bu limitten küçükse optimize edici dizin dalışlarını kullanarak verileri örnekleme yapar. N bu limite eşit veya büyükse optimize edici bunun yerine tablo istatistiklerini kullanır.
Daha fazla bilgi için bkz. eq_range_index_dive_limit hakkında MySQL belgeleri.
Önerilen değerler:
MySQL 5.6:
10MySQL 5.7 ve 8.0:
100
Geçici dosyalar ve disk alanı
loose_rds_max_tmp_disk_space
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 5.6, 5.5 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Örnekteki geçici dosyaların toplam boyutunu sınırlar.
Belirti: Bu sınırın aşılması aşağıdaki hataya neden olur:
The table '/home/mysql/dataxxx/tmp/#sql_2db3_1' is full
Önce geçici dosyalar oluşturan SQL ifadelerinin optimize edilip edilemeyeceğini kontrol edin. Örnekte yeterli disk alanı varsa ve sorgulardan kaçınılamıyorsa bu değeri artırın.
DDL hızlandırma
loose_innodb_rds_faster_ddl
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 (küçük sürüm ≥ 20200630) |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
ApsaraDB RDS ekibi tarafından geliştirilen bir arabellek havuzu yönetimi mekanizması kullanarak şema değişiklikleri gibi belirli DDL işlemlerini hızlandırır ve DDL'nin çalışan iş yükleri üzerindeki etkisini azaltır.
Önerilen değer: Etkin.
Tam metin dizinleri
innodb_ft_cache_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Tablo başına tam metin dizini verileri için ayrılan belleği (bayt cinsinden) ayarlar.
Önerilen değer: 8000000
innodb_ft_total_cache_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Örnekteki tüm tablolar genelinde tam metin dizini verileri için ayrılan toplam belleği (bayt cinsinden) ayarlar.
Önerilen değer: 640000000
innodb_ft_result_cache_limit
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Her tam metin dizini sorgusu için sonuç kümesinin bellek sınırını (bayt cinsinden) ayarlar.
Önerilen değer: 2000000000
InnoDB iç bileşenleri
innodb_purge_threads
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
InnoDB'nin undo kayıtlarını temizlemek için kullandığı arka plan iş parçacıklarının sayısını ayarlar. Daha fazla iş parçacığı temizleme aktarım hızını iyileştirerek undo dosyası birikimini önler ve bazı iş yüklerinde DML ve sorgu performansını artırır.
Önerilen değer: LEAST(DBInstanceClassMemory/1073741824, 8)
innodb_sync_array_size
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Mutex/kilit bekleme dizisinin boyutunu ayarlar. Daha büyük bir değer çok sayıda bekleyen iş parçacığı üreten iş yükleri için eşzamanlılığı iyileştirir. Bu parametre başlatma sırasında okunur ve çalışma zamanında değiştirilemez. Bekleyen iş parçacıklarının sayısı sık sık 768'i aşıyorsa bu değeri artırın.
Önerilen değer: 128
innodb_parallel_read_threads
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0 (küçük sürüm ≥ 20200831) |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Birincil anahtar taramaları için eşzamanlı iş parçacıklarının sayısını ayarlar. Bu parametrenin bilinen hataları vardır.
Önerilen değer: 0 (devre dışı)
İzleme ve günlüğe kaydetme
performance_schema
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | — |
MySQL'in dahili yürütmesini enstrümante eden Performance Schema'yı etkinleştirir veya devre dışı bırakır. Etkinleştirmek bellek ek yükü ekler ve performansı etkileyebilir.
Önerilen değer: OFF
general_log
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Sunucu tarafından alınan her ifadeyi kaydeden genel sorgu günlüğünü etkinleştirir veya devre dışı bırakır.
Belirti: Bu günlüğün etkinleştirilmesi örnek depolamasını tüketebilir. Daha fazla bilgi için bkz. Genel sorgu günlüğü özelliği hakkında SSS.
Önerilen değer: OFF
Saat dilimi
default_time_zone
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 8.0, 5.7, 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
Varsayılan sunucu saat dilimini ayarlar.
Belirti: Ayarlanmamış veya uyumsuz bir saat dilimi yanlış saat dönüşümlerine, tutarsız zaman damgalarına ve özellikle birden fazla bölgeye hizmet veren uygulamalarda sık saat dilimi ayarlamalarından kaynaklanan daha yüksek CPU kullanımına neden olur.
Önerilen değer: İş gereksinimlerinize göre ayarlayın. Ayrıntılar için bkz. ApsaraDB RDS for MySQL'de time_zone parametresi için en iyi uygulamalar.
MySQL 5.6 parametreleri
loose_tokudb_buffer_pool_ratio
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 5.6 |
| Yeniden başlatma gerekli mi? | Evet |
| Geçici bağlantı kesintisi | Evet — Yoğun olmayan saatlerde değiştirin |
TokuDB tablolarının innodb_buffer_pool_size değerine göre kullanabileceği arabellek belleği yüzdesini ayarlar. Örneğin, innodb_buffer_pool_size 1000 MB ve bu parametre 50 olarak ayarlanırsa TokuDB tabloları en fazla 500 MB kullanabilir.
Örnekteki birincil iş yükü TokuDB tablolarıysa bu değeri artırın.
loose_max_statement_time
| Özellik | Değer |
|---|---|
| Desteklenen sürümler | MySQL 5.6 |
| Yeniden başlatma gerekli mi? | Hayır |
| Geçici bağlantı kesintisi | Hayır |
Sorgular için milisaniye cinsinden maksimum çalıştırma süresini ayarlar. Bu sınırı aşan sorgular kesintiye uğrar. Varsayılan olarak sorgu süresi sınırsızdır.
Belirti: Sınırın aşılması aşağıdaki hataya neden olur:
ERROR 3006 (HY000): Query execution was interrupted, max_statement_time exceeded
Bu parametreye yapılan değişiklikler yalnızca yeni bağlantılar için geçerlidir. Yeni değerin uygulanması için mevcut bağlantıların yeniden bağlanması gerekir.
MySQL 5.6'da maksimum SQL çalıştırma süresi hem
loose_max_statement_timehem deloose_max_execution_timetarafından kontrol edilir. Değişikliğin etkili olması için her iki parametreyi de aynı anda değiştirin.
Örnekte sorgu zaman sınırlarını uygulamak gerektiğinde bu parametreyi ayarlayın.