2014-03-25 60 views
1

假設我們有1分億美元的記錄,並想將它們存儲在OneThree表按post_type。InnoDB緩衝池和多個連接

post_id -> primary key 
post_type -> (page, group, user) 
user_id -> index 
date  -> index 

注意:我們有足夠的RAM將所有數據存儲在緩衝池中。 (40 GB)
在我們的情況,Reading從數據庫太多

的問題是:WHILE整個數據爲ON緩衝池(RAM),有什麼不同in performance3分離表和Join他們,或有1大表,並從中Select沒有任何Join

在某些情況下,最好的,我們有分離表用於其他種類的光的查詢。
但我們擔心JOINS

回答

1

我發現下面的文章在SQL Server大聯接。通過本文中的信息,一張非常大的表格可能會比加入三張大表格更快。但是,這是從2006年開始的,所以有些信息可能會過時。

http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/

編輯:還值得一提的是,你應該看看,你要使用的每個操作的頻率。如果您需要經常加入表格,那麼您可能需要使用一張表格。如果您不太經常參加表格,您可能需要使用三張表格。