2012-05-10 3 views
4

MySQLクエリでサーバステータス変数を使用することはできますか?クエリでMySQLステータスを取得する方法

私は「ショーの状態」から、さまざまな指標を見ることができますが、どのように私は、派生値(例えば、クエリキャッシュのヒット率)

show global status like 'Qcache_inserts'; 
show global status like 'Qcache_not_cached'; 
show global status like 'Qcache_hits'; 

ホーは私がQcache_hits /(Qcache_hits + Qcache_inserts + Qcache_not_cached)を得るかを計算するのですか?

答えて

5

は一般的に、あなたは、この選択によりその情報にアクセスすることができます:はいすることができます

select (g1.VARIABLE_VALUE/(g1.VARIABLE_VALUE + g2.VARIABLE_VALUE + g3.VARIABLE_VALUE)) as result 
FROM INFORMATION_SCHEMA.GLOBAL_STATUS g1 
inner join INFORMATION_SCHEMA.GLOBAL_STATUS g2 
inner join INFORMATION_SCHEMA.GLOBAL_STATUS g3 
where g1.VARIABLE_NAME = 'Qcache_hits' 
and g2.VARIABLE_NAME = 'Qcache_inserts' 
and g3.VARIABLE_NAME = 'Qcache_not_cached' 
+0

ダーン! "5.1.12で追加され、私は5.0を持っています:( – symcbean

0

SELECT 
    VARIABLE_NAME, 
    VARIABLE_VALUE 
FROM 
    INFORMATION_SCHEMA.GLOBAL_STATUS 

あなたはこのようにしたい計算を行うことができます。 "SHOW STATUS"の代わりに "VARIABLE_VALUE FROM GLOBAL_STATUS"を使用し、他のテーブルのように進んでください。

この表はINFORMATION_SCHEMAデータベースに存在します。

例クエリ:

SELECT VARIABLE_VALUE FROM GLOBAL_STATUS WHERE VARIABLE_NAME="Qcache_inserts" 

この情報がお役に立てば幸い!

関連する問題