在是否將包含文本列的大型(幾百K條記錄)表分成兩個表時存在一些困難。在ORM後面帶有文本列的MySQL大表
有關商店的新聞文章表:
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文章會產生一些開銷,也許並不那麼重要,但足以讓我畏縮不前因爲在寫直SQL時,我不會在這種情況下獲取所有字段。
鑑於ORM的真實性,我應該將文本列分解成單獨的相關表格還是不打擾,只需使用ORM抓取整個enchilada約定,並在網站流量要求更高效時考慮它,2表解決方案?
生產中只有一個表沒有ORM,基於字符串的SQL;在開發中,我把表格分解了,因爲我無法處理(完美主義者)關於在每個查詢中包括文章文本的想法。這篇文章是關於去與ORM約定或去與SQL約定,我偏好與後者,因爲這是我所知道的最好... – virtualeyes 2012-04-18 15:06:55