データベースファイルの最適化

データベーススキーマの変更を避けます。

いったんデータベースのテーブルにデータを追加したら、なるべくデータベースのスキーマ(テーブル構造)を変更しないようにします。データベースファイルでは通常、ファイルの先頭にテーブル定義が配置されています。データベースへの接続を開くと、それらの定義が読み込まれます。データベースのテーブルに追加したデータはファイルのテーブル定義データの後に追加されますが、スキーマを変更すると、新しいテーブル定義データと、データベースファイルのテーブルデータが混合されます。例えば、列をテーブルに追加するか、新しいテーブルを追加すると、様々な種類のデータが混在するようになります。テーブル定義データの一部が、データベースファイルの先頭に配置されていない場合、データベースへの接続を開く時間が長くなります。ファイル内の様々な場所からテーブル定義データを読み取るのに時間がかかるので、接続を開く速度が遅くなるのです。

スキーマを変更した後は、SQLConnection.compact() メソッドを使用してデータベースを最適化します。

スキーマを変更する必要がある場合は、変更が完了した後に SQLConnection.compact() メソッドを呼び出します。これにより、データベースファイルが再構築されて、テーブル定義データがファイルの先頭にまとめて配置されます。ただし、compact() 操作には時間がかる場合があります(データベースファイルが大きくなるにつれてその傾向が強くなります)。