먼저 이러한 상태 변수를 고려하십시오.
열린 테이블 : 열린 테이블 수입니다.
Opened_tables : 열린 테이블 수입니다. Opened_tables가 크면 table_open_cache 값이 너무 작을 수 있습니다.
놀랍게도 귀하의 질문에 대한 답변은 질문 자체에 있습니다.
: 당신이 믹스에 또 하나 개의 상태 변수를 던져 두 변수는 더 나을 가동 시간 (또는 Uptime_since_flush 상태를 후 신선한 평균을 위해 FLUSH 상태 ).
Open_tables agsinst (Opened_tables / Uptime) 비교해야합니다 . Open_tables가 (Opened_tables / Uptime) 이상으로 올라가면 이제 우려 할만한 원인이 있으며 다음과 같은 사항에주의를 기울여야합니다.
업데이트 2011-08-31 12:18 EDT
주어진 시간 동안 Opened_tables 성장 패턴을 수정하기 위해 Uptime 대신 Uptime_since_flush_status 를 사용하는 것이 좋습니다 .
예를 들어 FLUSH STATUS;
매주 월요일 자정에 실행 하는 경우 OpenTableFactor를 생성 할 수 있습니다.
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;
이 열린 테이블 요소는 주어진 기간 동안 열린 테이블의 평균 수에 대해 주어진 순간에 열린 테이블 수를 나타내는 수에 해당합니다. A를 FLUSH HOSTS;
매주 / 일 / 호스트, 그 평균은 주 / 일 /시에 위배됩니다.
다음은 고용주의 고객 중 한 사람의 샘플입니다.
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)
이 클라이언트는 일반적으로 약 7745 OpenTableFactor를 최대로 유지합니다. OpenTableFactor가 갑자기 떨어지면 (약간이라도) 낮은 트래픽 패턴, 중단 된 높은 연결 수 등을 나타낼 수 있습니다. OpenTableFactor가 조금이라도 변경되지 않으면 다음 설정을 변경할 수 있습니다.
OpenTableFactor가 조정되면 지속적으로 변경되거나 다른 한도 또는 고원에 도달 할 수 있습니다. 따라서 상태 변수 내에서 다른 단위를 사용하면 이러한 종류의 튜닝에 필수적입니다.
업데이트 2011-08-31 12:42 EDT
OpenTableFactor에 대해 실행 한 SQL 쿼리는 MySQL 5.0 이상에서 작동하지 않습니다. MySQL 관리자를 사용하는 경우 또는 MONyog를 , 당신은 쿼리 및 모니터의 공식을 사용하여 그래프를 사용자 정의 할 수 있습니다. MONyog는 나중의 히스토리 그래프를 위해 SQLLite를 사용하여 히스토리를 수집합니다. 이것은 모든 버전의 MySQL에서 수행 할 수 있습니다.