0

データベースにインデックス列を作成する方法に関するいくつかのチュートリアルを読みました。Grailsのドキュメントから、インデックス列を定義する必要があることがわかりました。

私の質問は:

  1. これらのインデックス列をどうするか? クエリでそれらを使用する必要がありますか、それとも Hibernate が代わりに作業を行いますか?

  2. インデックスに含まれる列を知るにはどうすればよいですか?

  3. firstName column: 'First_Name', index: 'Name_Idx'と はどう違い matrix indexColumn: [name: "the_matrix", type: Integer]ますか?

4

1 に答える 1

1

これらのインデックス列をどうするか? クエリでそれらを使用する必要がありますか、それとも Hibernate が代わりに作業を行いますか?

インデックスは、データベースで扱うのと同じように扱うことができます。これにより、データ検索操作の速度が向上します。Hibernate は最後に sql を生成するため、データベースがインデックスの使用方法を決定するため、何もする必要はありません。

How do I know which columns an index should contain?

データベースに関する知識とクエリを最適化する方法によって異なりますが、単純なことは、データをより頻繁に取得する列にはインデックスが必要になる可能性があるということです。常に電話番号または最初の名前を検索する場合は、それらのインデックスを作成します。ここでも、すべてのデータベースのインデックス作成ルールが適用されます。

What is the difference between: 
firstName column: 'First_Name', index: 'Name_Idx' and 
matrix indexColumn: [name: "the_matrix", type: Integer]

最初のものは「Name_Idx」と呼ばれるインデックスの名前で、オプションです。タイプとその他の情報を定義することにより、2 番目の情報を使用してさらに情報を追加できます。grails にデータベースの生成を許可すると、これらの情報を使用してデータベースが作成されます。

アップデート

質問ごとに、複合インデックスを作成するには、このリンクをご覧ください

名前は、インデックスを構築している列の名前です。インデックスの構築はデータベースの問題です。必要に応じて作成する必要があります。sql タグを付けて投稿すると、より多くの情報を見つけることができると確信しています。必要ないと思われる場合は、今すぐ実行しないでください。アプリケーションでパフォーマンスの問題が発生した場合は、クエリにインデックスを作成することを検討できます。fyi: Grails はデフォルトで主キーのインデックスを作成します

于 2013-07-21T11:51:44.363 に答える