Hibernate と MySQL を使用して、Eclipse IDE の使用に関する多くのトレース データを保存する Java プログラムがあります。このデータには、メソッド名、ディレクトリ、パースペクティブ名などの多くの文字列が含まれています。
たとえば、イベント オブジェクト (レコードに反映される) は、ソース ファイルと現在のメソッド、ユーザー名などを指定できます。明らかに、文字列データ自体を繰り返すことができます。
メモリ内にある限り、その多くは内部化されるため、繰り返されるすべての文字列インスタンスは同じオブジェクトを指します (私はそれを確認しています)。ただし、@Basic (私は注釈を使用します) を使用すると、Hibernate はそれを VARCHAR(255) にマップします。これは、多くの無駄なスペースを意味します。
自分で SQL をコーディングしていた場合、VARCHAR を手動で管理された文字列ルックアップ テーブルへのインデックスに置き換えて、スペースを節約できたはずです (追加のルックアップを犠牲にして)。
Hibernate にこれを実行させる方法はありますか? スペースのパフォーマンス ヒットを喜んで支払います。