-1

mysqlすべてのテーブルがinnodbエンジンを使用する30GBの大規模データベースがあります。このスペースのほとんどすべては、大きなテキストをバイナリ形式で格納する1つの大きなテーブル(約25 GB)によって占められていますが、クエリの99%は他の小さなテーブルを使用しています。

私のサーバーには16GBのRAMが搭載されており、システムのメモリが非常に不足しており、常にスワップを使用しているため、ユーザーに多大な苦痛を与えています。にinnodb_pool_buffer_size設定しました6G

これらのテキストをデータベースからファイルシステムに移動することで、このパフォーマンスの問題を解決することを考えています。

ほとんどのクエリがこの大きなテーブルを使用しない場合、25 GBのテキストをファイルシステムに移動すると、この問題は解決しますか?最大のinnodbテーブルがクエリにあまり使用されていない場合でも、データベースのサイズはサーバーのパフォーマンスに影響しますか?

4

2 に答える 2

3

あなたの質問には、答えを提供するのに十分な情報がありません。

問題に考えられる解決策を適用する前に、問題を見つけるために体系的なアプローチを取る必要があります。そうでなければ、未知の病気のためにランダムな薬を処方することになります. 問題を改善するのと同じくらい、問題を悪化させる可能性が高いか、効果がありません。

遅いクエリを実行することから始めてEXPLAIN、それらが何をしているかを確認します。これらのクエリを改善するために、テーブルが適切にインデックス付けされていることを確認してください (まだ行っていない場合)。それでも問題が解決しない場合は、最も遅いクエリと の出力をEXPLAIN新しい質問としてここに投稿すると、より有用な回答が得られます。

于 2012-07-08T19:42:05.703 に答える
0

データベースがどのように使用されているかを詳しく調べる必要があるという Flimzy の意見に完全に同意します。データベースの最適化について支援が必要な場合は、より多くの情報が必要になります。

ただし、あなたが尋ねた 2 つの質問にはお答えできます。99.9% のケースで、ファイルベースのシステムへの移行は MySQL よりも優れているわけではありません。MySQL は、データの並べ替え、順序付け、および選択に対して、標準のファイル システムよりもはるかに優れたアプローチを採用しています。基本的に、OS は 1 つのディレクトリに大量のファイルを保持するのが非常に苦手であり、HDD の I/O と待ち時間は単純に天井を通り過ぎます。
2 番目の質問: いいえ、データベース/テーブルのサイズがサーバーのパフォーマンスに影響を与える必要はありません。私は 145 GiB の InnoDB テーブルを持っています (確かに、それは SSD 上にあります) が、私のサイトが大きな打撃を受けることなく、ひどく使用されています。:ole Flimzy 氏によると、最適なパフォーマンスを得るには、SQL サーバー、テーブルの設計とインデックス作成、およびクエリを最適化する必要があります。

于 2012-07-08T19:57:49.707 に答える