-1

私は約5Gbの巨大なmysqlデータベースを持っています。これらのデータベーステーブルにはInnoDBを使用しています。PHPMyadmin(MySqlは1Gb VPSで実行されています)がかなり遅くなり、応答しなくなることがあります。

(現時点では)データをまったく使用しないため、テーブルをそのデータベース(データベースAと呼びます)から別のデータベースB ( Aで毎日新しいテーブルを作成しています)に移動しました。

現在、データベースAには300Mbのデータしかありません。ただし、PHPMyadminはまだ低速で、応答しない場合があります。

これは、データベースBを使用していない場合でも、データベースBが原因ですか?

編集:「トップ」によると、MySqlはサーバーメモリの約20%を消費します。ただし、「free」コマンドで確認すると、サーバーメモリの95%が割り当てられています。メモリを消費する他の目立つプログラムはありません。

4

1 に答える 1

1

これはサーバー設定(my.cnf)によって異なります。プロセスベースのバッファー(myISAMの場合はkey_block_size、INNODBの場合はinnodb_buffer_pool)を介してメモリの20%を消費するようにmySQLを構成した場合、クエリがスレッドベースのバッファーを使用していて、それが大きくなるように構成されていない限り、mysqlは成長しません。

システムメモリの95%が割り当てられている場合、どこに割り当てられますか?メモリはファイルシステムのキャッシュにありますか?別のプロセス?

また、データベースを移動したり、テーブルを削除したりする場合などにも注意してください。ほとんどの場合、mySQLのユーザーベースのメモリがフラッシュされ、バッファにmysqlを補充する必要があるため、実行している操作によってディスクへのアクセスが増えます。

もう1つ。PHPmyadminが新しいデータベースメモリで遅い場合。アプリケーションが別のデータベースに対してmysqlをより強くヒットしている可能性があり、PHPMyadminからのすべての新しいクエリが新しいデータベースのテーブルのディスクにヒットするように強制します。

このロジックはすべて、my.cnfの変更によって制御されます。

于 2013-03-26T00:09:43.493 に答える