私は私たちのプロジェクトにLiquibaseを使用しようとしています。主にOracleデータベースと他のデータベースを使用する頻度が少なくなります。私は、インデックスの場合に列の順序を指定する方法を見つけようとしています。以下は、典型的なcreate index change setです。LiquibaseのcreateIndexカラムの順序
<createIndex indexName="PK_xxxxxxx" tableName="xxxxx" unique="true">
<column name="column_1"/>
<column name="column_2"/>
<column name="column_3"/>
</createIndex>
パフォーマンスとアプリケーションのスケーラビリティについては、インデックスの列の順序が大きく影響します。インデックスを作成する際に同じ方法を指定する方法があれば教えてください。
PS:列タグのドキュメントごとに、属性afterColumn
、position
が存在し、それらはcreate tableにのみ適用されます。ここでは、それについて書かれているものがあります。
「addColumn」コマンドで使用する場合、この属性を使用すると、テーブルの列の順序で新しい列がどこに移動するかを制御できます。 beforeColumn、afterColumnまたはpositionのいずれか1つだけが許可されます。非常に多くのDBMSは
create index
文で指定された順序を使用していますように -createIndex
タグに記載されている3.1
。 createIndexコマンドを使用しています。 –
@PeterHenellはい、作成テーブルでは、 'AfterColumn'または 'Position'属性を使用して列の順序が許可されます。私は同じものが 'CreateIndex'と一緒に使用できるかどうか疑問に思っていました。 –
@a_horse_with_no_name、ありがとうございます。通常、XMLは 'order less'です。つまり、これらのXMLファイルを生成している間にXML操作用に他の標準ツールを使用すると、列が順番どおりになるという保証はありません。それがこの質問の理由でした。 –