假设我们有10亿条记录,并希望通过post_type将它们存储在One
或Three
表中。
post_id -> primary key
post_type -> ( page, group, user )
user_id -> index
date -> index
注意:我们有足够的RAM来存储缓冲池中的所有数据。 (约40 GB)
在我们的情况下,来自数据库的Reading
太多了
问题是: WHILE 整个数据是ON缓冲池(RAM),in performance
分隔表和3
是否有任何区别Join
他们,或者1
大表和Select
,而没有任何Join
。
在某些情况下,对于我们来说,为其他类型的轻量查询分隔表格会更好
但我们担心JOINS
。
答案 0 :(得分:1)
我在sql server中找到了关于大型连接的以下文章。按照本文中的信息,一个非常大的表可能比连接三个大表更快。但是,这是从2006年开始的,因此有些信息可能已经过时。
http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/
编辑:还值得注意的是,您应该查看每次操作的频率。如果您需要经常加入表,那么您可能想要使用一个表。如果您不经常加入表格,则可能需要使用三个表格。