全文インデックスを使用するにはDBタイプで
MyISAMを使用しなければいけませんが、
基本的にはInnoDBを利用したいと思っています。
そこで下記の2パターンのどちらにするかで悩んでいます。
■パターン1
pageテーブル(InnoDB)
|page_id(PK)|page_title|その他カラム|
search_dataテーブル(MyISAM)
|page_id(PK)|page_contents(全文インデックス)|
■パターン2
pageテーブル(MyISAM)
|page_id(PK)|page_title|page_contents(全文インデックス)|その他カラム|
パターン1とパターン2、
それぞれのメリットについてご意見頂きたいです。
特にスケーラビリティ的な部分についても、
ご意見頂けると嬉しいです。
■パターン1のメリット
・pageテーブルのカラムについては外部キーが利用出来る。
・pageテーブルのカラムについてはトランザクションが利用出来る。
■パターン2のメリット
・パターン1と違い毎回JOINせずに済む。
・パターン1と違い片方がdeleteされた時等の操作を別途実装する必要が無い。
例で言う所のpageテーブルが、
他エンティティとのリレーション数が多い構造なので、
とりあえずパターン1で進める事にしました。
(外部キーと参照操作を使いたいため)
実際にTritonnでサービスを運用している所の話とか聞けるといいんですが。