İlk olarak, bu durum değişkenlerini ele alalım:
Açık tablolar : Açık olan tablo sayısı.
Opened_tables : Açılan tablo sayısı. Opened_tables büyükse, table_open_cache değeriniz muhtemelen çok küçüktür.
Şaşırtıcı bir şekilde, sorunuzun cevabı sorunun kendisinde yatıyor.
: Eğer karışımı içine bir daha durum değişkeni atmak eğer iki değişken sadece daha mantıklı olur Uptime (veya Uptime_since_flush statü sonra taze ortalamalar için FLUSH Durum ).
Open_tables agsinst (Opened_tables / Uptime) 'ı karşılaştırmalısınız . Open_tables'ın üstüne çıkarsa (Opened_tables / Uptime) , şimdi endişe için bir nedeniniz var ve aşağıdaki gibi şeylere göz kulak olmalısınız:
GÜNCELLEME 2011-08-31 12:18 EDT
Belirli bir dönemde düzeltilmiş bir Opened_tables büyüme modeli elde etmek için neden Uptime yerine Uptime_since_flush_status kullanılmasını önerdiğimi lütfen unutmayın .
Örneğin, FLUSH STATUS;
her Pazartesi gece yarısı çalışırsanız, bir OpenTableFactor oluşturabilirsiniz:
SELECT *, (Open_tables * Uptime / Opened_Tables) OpenTableFactor FROM
(SELECT variable_value Uptime FROM information_schema.global_status
WHERE variable_name = 'Uptime_since_flush_status') up,
(SELECT variable_value Open_tables FROM information_schema.global_status
WHERE variable_name = 'Open_tables') opn,
(SELECT IF(variable_value=0,1,variable_value) Opened_tables
FROM information_schema.global_status
WHERE variable_name = 'Opened_tables') opnd;
Bu açık tablo faktörü, belirli bir dönem boyunca ortalama açılan tablo sayısına karşı herhangi bir anda açık tablo sayısını temsil eden sayıya eşittir. Bir ile FLUSH HOSTS;
her hafta / gün / konak, ortalama hafta / gün / saat aykırıdır.
İşte benim işveren müşterilerimden bir örnek:
mysql> SELECT *, (Open_tables * Uptime / Opened_Tables) OpenTableFactor FROM (SELECT variable_value Uptime FROM information_sc hema.global_status WHERE variable_name = 'Uptime_since_flush_status') up, (SELECT variable_value Open_tables FROM informat ion_schema.global_status WHERE variable_name = 'Open_tables') opn, (SELECT IF(variable_value=0,1,variable_value) Opened_ta bles FROM information_schema.global_status WHERE variable_name = 'Opened_tables') opnd;
+----------+-------------+---------------+-------------------+
| Uptime | Open_tables | Opened_tables | OpenTableFactor |
+----------+-------------+---------------+-------------------+
| 14385123 | 16326 | 30429078 | 7717.996519579068 |
+----------+-------------+---------------+-------------------+
1 row in set (0.00 sec)
Bu istemci normalde maksimum 7745 OpenTableFactor tutar. OpenTableFactor aniden düşerse (az da olsa), daha düşük trafik düzenlerini, yüksek iptal edilen bağlantıları vb. Gösterebilir. OpenTableFactor asla değişmezse (biraz da olsa), size bu ayarları değiştirme fırsatı sunabilir:
Ayarlandıktan sonra, OpenTableFactor sürekli olarak değişebilir veya başka bir tavana veya platoya çarpabilir. Böylece, durum değişkenleri içinde farklı birimlerin kullanılması bu tür ayarlar için hayati önem taşır.
GÜNCELLEME 2011-08-31 12:42 EDT
OpenTableFactor için çalıştırdığım SQL sorgusu MySQL 5.0 ve geri için çalışmıyor. Eğer kullanıyorsanız MySQL Yöneticisi veya MONyog , sen sorgu ve monitörün içinde formül kullanılarak bir grafik özelleştirebilirsiniz. MONyog, daha sonraki tarihsel grafikleme için SQLLite kullanarak tarihi toplar. Bu, MySQL'in herhangi bir sürümü için yapılabilir.