Имея немного дилеммы, следует ли разбить на две таблицы большую (несколько сотен K записей) таблицу, содержащую текстовый столбец.MySQL большая таблица с текстовым столбцом за ORM
В таблице вопросительных магазинов новостных статей:
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, этикетки, dateCreated) и исключить те, которые вы не хотите (в частности, раздутый текст колонки)
при работе с ORM, однако, объект забирается, который содержит все столбцы, поэтому захват 50 из самых последних статьи будут нести некоторые накладные расходы, возможно, не так уж и так, но достаточно, чтобы заставить меня съежиться ab так как я бы никогда не захватил все поля в этом случае при написании прямого SQL.
Учитывая реальность ORM, должен ли я разбивать текстовый столбец на отдельную связанную таблицу или не беспокоиться, просто переходите к соглашению ORM grab-the-whole-enchilada и беспокоитесь об этом, когда трафик сайта требует более эффективного , 2 столовый раствор?
В производстве есть только одна таблица без ORM, основанная на строках SQL; в развитии у меня есть таблицы, разбитые, поскольку я не мог справиться с (перфекционистской) мыслью о включении текстов статей в каждый запрос. Это сообщение идет о соглашении ORM или идет с соглашением SQL, мое предпочтение относится к последнему, поскольку это то, что я знаю лучше всего ... – virtualeyes