我們有一個名爲posts_content的mysql表。Mysql'分區'vs將數據分割成不同的表
的結構如下:
CREATE TABLE IF NOT EXISTS `posts_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`post_id` int(11) NOT NULL,
`forum_id` int(11) NOT NULL,
`content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=79850 ;
的問題是,該表越來越漂亮巨大。許多千兆字節的數據(我們有一個爬行引擎)。
我們每天都會在表格中插入數據,但我們很少檢索數據。現在,桌子變得非常大,難以處理桌子。
我們討論了兩種可能性
- 使用MySQL的分區功能使用forum_id(大約有50 forum_ids所以就約50分區的分區表。需要注意的是,即使做出這樣最終會成長每個分區再次數據的多千兆字節甚至最終需要自己的驅動
- 創建每個forum_id單獨的表和分裂這樣的數據。
我希望我已經解釋清楚的問題。我需要知道的是,從長遠來看,上述兩種方案中的哪一種會是更好的解決方案。什麼是adv。 dis adv。這兩種情況。
感謝你
我得到了問題,但你提出的解決方案,看起來與我一樣,除了在一個MySQL提供的解決方案和情況2似乎你會建立自己的。我說得對嗎? –
Ozair Kafray - 有些差異,有些我知道。例如,當您使用分區時,您以與以前相同的方式查詢表,但對於最終用戶而言,它仍然是一個表,儘管它分爲許多文件。作爲另一種解決方案,如果您需要查詢數據,您需要首先將所有表放回到連接或臨時表中或類似的東西中。有了你永遠不知道的任何功能...... Darhazer發佈的鏈接很有趣 –