0

mysql データベースを最適化しようとしています。Debian を実行している VPS には、約 2000 クエリ/秒と 16GB RAM があります。MySQL Tuner を実行しました。それは言います:

[!!] Query cache efficiency: 2.4% (1K cached / 51K selects)
... 
query_cache_limit (> 8M, or use smaller result sets)

これは、query_cache_limit を増やすか下げる必要があるということですか?

私は今これらの設定を持っています:

query_cache_limit   = 8M
query_cache_size    = 256M

ありがとう

4

3 に答える 3

2

統計情報をそのままにしてオフにすると、パフォーマンスが向上します。

実際のメモリ使用量を(パーセントで:(query_cache_size-Qcache_free_memory)/ query_cache_size)表示しておけば助かります。

それで記憶を投げることは役に立たないでしょう。キャッシュの恩恵を受けるクエリが少数ある可能性があります-query_cache_typeが1(自動)に設定されていると思います。これを2に変更し、キャッシュ可能にする必要があるselectにSQL_CACHE宣言を追加します(NB MySQLでは、クエリの最初の文字を「S」にして、キャッシュの候補と見なす必要があります)。

メモリ使用量と空きブロック数によっては、キャッシュのサイズも減らす必要があります。

于 2012-05-10T07:59:46.830 に答える
2

クエリ キャッシュを利用するには、クエリを最適化することから始める必要があります。2.4% の効率は本当に低いです。ここをよく読んでください。クエリキャッシュが実際にどのように機能するかについて、多くの情報が得られます。

クエリは決定論的である必要があり、非常に興味深いことがわかりましたNOW()..クエリのように物事を使用することについて考えさせられます。申し訳ありませんが、現在の 51k の選択を最適化することに関して、これ以上お役に立てません。

于 2012-05-10T07:47:39.730 に答える