假设我们有10亿条记录,并希望按post-u类型将它们存储在One
或Three
表中。
post_id -> primary key
post_type -> ( page, group, user )
user_id -> index
date -> index
注意:我们有足够的内存来存储缓冲池中的所有数据。(约40GB)
在我们的情况下,数据库中的
Reading
太多问题是:当整个数据都在缓冲池(RAM)中时,有没有不同的
in performance
分隔表和3
它们,或者有Join
大表和1
而没有任何Select
。在某些情况下,对于其他类型的轻量级查询,最好使用分隔表。
但我们害怕
Join
。 最佳答案
我在下面的文章中找到了关于sql server中大型连接的内容。根据本文中的信息,一个非常大的表可能比连接三个大表更快。但是,这是2006年的,所以有些信息可能已经过时了。
http://www.mysqlperformanceblog.com/2006/06/09/why-mysql-could-be-slow-with-large-tables/
编辑:同样值得注意的是,你应该看看每次操作的频率。如果需要经常连接表,则可能需要使用一个表。如果要减少连接表的频率,则可能需要使用三个表。