前提
データベースのパフォーマンスの最適化や全文検索等に明るくないので質問させてください。
下記のようなone-manyのテーブルがあったとき、どの行でも構わないので指定した「キーワード」を持つ【parent】を取得しようとしています。
(parentが持つchildrenはせいぜい10個ほど)
【parent】
- id
- title
- description
【childen】
- id
- parent_id
- title
- description
実現したいこと
このような場合、複数行を対象とした少し複雑なクエリを書く必要があります。
それ自体は別に構わないのですが、いっそのこと【parent】に検索対象にしたい全てのテキストを結合させた行を作り、それに対して全文検索をかければわかりやすくて楽なのでは?と思いました。なんならその方がパフォーマンスも良いような気さえします。
下記のようなイメージです。
【parent】
- id
- title
- description
- joined-text (parent.title + parent.description + (children.title + children.description) * children)
複数行に対して全文検索をするクエリを書くか、上記のようなまとめた行を作って全文検索するか、この二つのアプローチにパフォーマンスの違いがあったり、懸念点などあれば教えていただきたいです。
SQLの種類やバージョンによるのでは?具体的な環境の想定はありますか?
ちなみに質問中の「行」は一般には「列」ではないですか?