2016-12-08 29 views
0

4GBのRAM(CentOS 7.2 with MariaDB)のVPS(ssd)上で、問題なく1日数回更新される大きなテーブルがあります。SELECTクエリのためにmy.cnfを最適化するMariaDB

my.cnfを最適化して、そのテーブルのSELECTクエリがより高速に実行されるようにしたいと考えています。

私は、my.cnfの中で、これまでにこれを持っている:

max_allowed_packet=1024M 
query_cache_size=256M 
innodb_buffer_pool_size=3072M 

私はフィードをインポートするときの最大値を打っ保持ので、私は高い値にのmax_allowed_pa​​cketを設定する必要がありました。

キャッシングはオンになっていると私はquery_cache_size = 256Mを設定し、innodb_buffer_pool_size = 3072M

(ほんの少し速い)大きな違いを生むようには見えません。 1つのクエリは約9秒で、現在は8秒かかります。

洞察力があれば幸いです!

+0

私はこの質問はおそらく間違った木を吠えているので、この質問を話題として閉じようと投票します。この問題は、インデックスまたはそれらの不足の可能性が最も高いです。 – e4c5

答えて

1

max_allowed_packet=1024M - これは他のメモリ使用から離れます。
query_cache_size=256M - いいえ。このサイズでは物事が遅くなります。 - 50M
innodb_buffer_pool_size=3072M以上だけでなく、4GBのRAM、および1Gは、最初の項目で撮影したので、唯一の1G

一般的なルールにこれを設定する:「あなたは、パフォーマンス上の問題のうちチューンあなたの方法をすることはできません。」しかし、は、スワップにつながる可能性があることを理解せずに、調整可能なパラメータを任意に上げることで、パフォーマンスを犠牲にしてになる可能性があります。そして、そのスワッピングはであり、MySQLパフォーマンスのためにはです。

パフォーマンスの問題では、クエリとテーブル(SHOW CREATE TABLE)を調べる必要があります。時には、 '複合'インデックスを追加するのと同じくらい簡単です。場合によっては、単純な修正により、クエリを10倍以上高速化することができます。

「更新された大きなテーブル」について教えてください。あなたは完全にそれをリロードしていますか? (もしそうなら、議論#73)。大規模なアップデート:#49; SELECTs同時にテーブルを打つ:#61。その他?

(私はこれらの数字を作ったが、それは、私は答えがこのフォーラムのどこかにあることを確認してください感じて、あなたがそれらを見つけることができない場合は、。のは、あなたの情報を見てみましょう。私たちは車輪の再発明することができます。)

関連する問題