MySQL を使用する電子商取引アプリケーションがあり、より高速にしたいと考えています。以前にアクセスしたことのある Web サイトでパーツ # にアクセスすると、必要なすべてのデータが既に INNODB バッファー プールにあるため、パーツがすばやく読み込まれます。ただし、パーツ # が以前にロードされたことがない場合、そのデータはまだバッファー プールにないため、ディスクから読み取る必要があり、低速です。INNODB バッファー プールを 2GB に設定しました。このデータベース全体は約 350MB しかないため、データベース全体をバッファー プールにロードする十分な余裕があります。INNODB の統計から、現在バッファ プールの約半分しか使用されていないことがわかります。
データのプリロード (バッファー プールの "ウォームアップ" とも呼ばれる) に関する参照を見つけました。たとえば、バッファー プール内の Innodb テーブルをすばやくプリロードする、または mysqldump.azundris.com/archives/70-Innodb-cache-preloading- などです。使用-blackhole.html。MySQL にはデータをプリロードするためのネイティブな方法がないため、戦略には基本的に各テーブルでテーブル スキャンを強制することが含まれます。
データベース内のすべてのテーブルをリストするスクリプトを手動で作成したくないので、これを行う必要があります。テーブルスキャンが実行されるように、各テーブルを自動的に通過して選択し、インデックスのない列を自動的に選択するスクリプトを作成するにはどうすればよいですか?