Bu, bu soru ile ilgilidir . InnoDB tabloları için daha iyi performans elde edilmesine yardımcı olur.
Göre MySQL kılavuzunda , innodb_flush_log_at_trx_commit
küresel dinamik bir değişkendir. Böylece, SET GLOBAL komutunu kullanarak değiştirebilirim ve çalışıyor gibi görünüyor.
mysql> SET GLOBAL innodb_flush_log_at_trx_commit=2;
Query OK, 0 rows affected
mysql> SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 2 |
+--------------------------------+-------+
1 row in set
Ancak, gerçek MySQL ayarını değiştirmedi. My.cnf dosyasını güncellediğimde ve MySQL sunucusunu yeniden başlattığımda işe yaradı. Peki, global değişkeni çalışma zamanında değiştiremiyorum?
Ben varsayılan değeri tercih innodb_flush_log_at_trx_commit=1
, ama daha hızlı almak için büyük bir veritabanı için bir geri yükleme işlemi çalıştırmadan önce 2 olarak değiştirmek gerekir. Ancak işlem tamamlandığında, değeri 1 olarak değiştirmek istiyorum. Çalışma zamanında bunu yapmak mümkün müdür?
Paylaşılan barındırma sunucumdaki my.cnf dosyasına erişimim yok .
SET GLOBAL max_connections = 1000;
ve benSHOW VARIABLES LIKE 'max_connections';
eski değeri görmek için çalıştığımda ben çıkış ve tekrar giriş kadar ortalama fındık sürücü olacağını deneyimli .