mysql - Innodb缓冲池和多重连接

标签 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 从数据库中太多了

问题是:虽然整个数据都在缓冲池(RAM)上,性能3分隔有什么不同吗表并Join它们,或者有1大表并从中Select而不进行任何Join

在某些情况下,我们最好为其他类型的轻型查询使用单独的表。
但是我们害怕 JOINS

最佳答案

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

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

编辑:同样值得注意的是,您应该查看每个操作的使用频率。如果您需要经常连接表,那么您可能希望使用一张表。如果您加入表格的频率较低,则可能需要使用三个表格。

关于mysql - Innodb缓冲池和多重连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644229/

相关文章:

纳税年度 7 月至 6 月的 SQL 累计总数

sql - 合并 2 个或更多行具有字符和其他具有货币

sql - 数据库行中的标志,最佳实践

c# - IEnumerable 作为 DataTable 性能问题

r - 在 R 中粘贴字符串最有效的方法是什么?

php - 嵌入式 PHP/MySQL 实现

mysql - 获取24小时时间范围内的记录

mysql - JOIN 查询的 ORDER BY

mysql - 如何在关注或取消关注之前检查用户是否正在关注另一个用户(附件)

sql - 如何从 SQL 查询中快速获得结果