私は6つのテーブルを持っています。それらのすべては、何百万と何百万ものデータ行を持つことができます。すべてのテーブルにobject_id、changer_id、date_createdカラムがあります。1つのクエリに同じ列を持つ複数のテーブルへのクエリの結合
私はテーブルのすべてのSELECT object_id
FROM table#
WHERE changer_id=someId
AND date_created > dateA
AND dateCreated < dateB
またはそのGrailsの同等
table#.createQuery().list{
projections{property('object_id')}
eq('changer_id', someId)
ge('dateCreated' dateA)
le('dateCreated', dateB)
}
同じクエリは、6つのテーブルのすべてについて説明した後、結果は上のクエリを作成する必要が
すべての重複が削除されます。
間には使用しないため、dateBは必ずしも存在しないため、省略される可能性があります。
このクエリを6つのテーブルで1つのクエリに結合する方法や、別の6つのクエリより高速にする方法はありますか?
ユニオンのクエリでは、これを行うことができます。https://www.postgresql.org/docs/current/static /queries-union.html - 最終的には、いつでもDataSourceを使用して自分で行うことができます。 – cfrick
@cfrick私は「いつもデータソースができますか?私はいくつかの言葉がないと思う。そして、組合では、それはまだ6つの異なる質問をします。最後に6つの質問を組み合わせます.6つの質問を別々に行い、それらを組み合わせるのではないですか? –
"いつでもDSを注入できます"; DBはすべての作業を行い、最小限のデータ量しか返さないため、処理速度が向上します。もちろん、パフォーマンスは測定されなければならず、貨物が栽培されていなければなりません。 – cfrick