4

古いデータをアーカイブするために使用される大きな MyISAM テーブルがあります。このアーカイブは毎月実行され、これらの機会を除いて、データがテーブルに書き込まれることはありません。MySQLがこのテーブルからの読み取りのパフォーマンスを最適化できるように、このテーブルが読み取り専用であることをMySQLに「伝える」方法はありますか? MEMORY ストレージ エンジンを見てきましたが、問題は、このテーブルが非常に大きいため、サーバーのメモリの大部分を占めることです。これは望ましくありません。

私の質問が十分に明確であることを願っています。私はデータベース管理に関しては初心者なので、入力や提案は大歓迎です。

4

3 に答える 3

1

を使用して、高速で圧縮された読み取り専用テーブルmyisampackを生成できます。

(ほとんどの行を返す必要がある場合、パフォーマンスが低下するかどうかはわかりません。テストをお勧めします。圧縮とディスク読み取りの間にはトレードオフが存在する可能性があります)。

私は言うだろう:また確かにいつものことを適用する:

  1. 適切なインデックスを提供する(最もよく使用されるクエリに基づく)
  2. データのクラスタリングを見てください(これもクエリで役立つ場合)
于 2010-05-06T11:17:42.117 に答える
1

はい、myisamテーブルを圧縮できます。

これが5.0のドキュメントです:http://dev.mysql.com/doc/refman/5.0/en/myisampack.html

于 2010-05-06T11:17:50.567 に答える