テキスト列を含む大きな (数百 K レコード) テーブルを 2 つのテーブルに分割するかどうかについて、少しジレンマがあります。
問題のテーブルには、ニュース記事が格納されています。
CREATE TABLE `article` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`articleType` varchar(7) DEFAULT NULL,
`dateCreated` datetime NOT NULL,
`label` varchar(75) NOT NULL,
`lastUpdated` datetime NOT NULL,
`reporter` mediumint(8) unsigned NOT NULL,
`text` text NOT NULL
PRIMARY KEY (`id`),
KEY `reporter-fk` (`reporter`),
CONSTRAINT `reporter-fk` FOREIGN KEY (`reporter`) REFERENCES `reporter` (`id`)
)
したがって、大したことですが、見出し (最新ニュース) を取得したい場合のストレート SQL では、必要な列 (id、label、dateCreated) を取得し、不要なもの (特に肥大化したテキスト列) を除外します。
ただし、ORM を使用する場合は、すべての列を含むオブジェクトがフェッチされるため、最新の記事を 50 件取得すると、多少のオーバーヘッドが発生します。おそらくそれほど大きくはありませんが、私と同じように少し身がすくむには十分です。この場合、単純な SQL を記述するときは、すべてのフィールドを取得しないでください。
ORMの現実を考えると、テキスト列を別の関連するテーブルに分割するか、気にしないで、ORMグラブザエンチラーダ慣習に従い、サイトトラフィックがより効率的な2テーブルソリューションを要求するときに心配する必要があります?