私はmysqlのバックエンドの経験が浅く、次のような状況にあります。
毎晩、mysqlデータベースをオフにし、mysqlフォルダーを別のフォルダーにrsyncするスクリプトがあります。その後、mysqlがオンになります。
その後、mysqlはbashスクリプトまたはWebアプリケーションのいずれかによってアクセスされます。
再起動するたびに、bashスクリプトまたはwebappのいずれかを介して入力される最初のいくつかのクエリは非常に遅くなります(10秒かかるものは3分かかります)。遅いクエリが終了またはタイムアウトすると、クエリは通常の速度で実行されます。また、コマンドラインからmysqlにログインすると、その後はすべて問題なく、クエリは期待される速度で実行されます。
速度が低下するのは、通常、ログイン時(-Aオプションが使用されていない場合)、または最初のクエリが必要なメタテーブル情報にアクセスした後に、MySQLがすべてのテーブル情報を読み取るためだと思います。
私の質問は、bashスクリプトを使用してこのプロセスを高速化し、クエリや手動ログインが遅くなるのを防ぐにはどうすればよいですか?必要なテーブルに対してダミー選択を行うだけですか、それともテーブル情報を取得するためのよりスマートな方法がありますか?
環境:
- CentOS 5.8
- MyISAMエンジンを搭載したMysql5.1
ありがとう!