Innodb缓冲池和多个连接

时间:2014-03-25 19:14:45

标签: mysql sql performance join innodb

假设我们有10亿条记录,并希望通过post_type将它们存储在OneThree表中。

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

1 个答案:

答案 0 :(得分:1)

我在sql server中找到了关于大型连接的以下文章。按照本文中的信息,一个非常大的表可能比连接三个大表更快。但是,这是从2006年开始的,因此有些信息可能已经过时。

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

编辑:还值得注意的是,您应该查看每次操作的频率。如果您需要经常加入表,那么您可能想要使用一个表。如果您不经常加入表格,则可能需要使用三个表格。