全文インデックスを使用するには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された時等の操作を別途実装する必要が無い。
敢えて正規化を崩してパフォーマンスを確保する事はままありますね。ところで、パターン1とパターン2のどちらが良いと思いますか?