MySQL:复制数据与连接

标签 mysql performance join

假设我有两个表:source 和 article,我想阅读 article 及其来源的具体细节,我可以 (1) 对两个表使用join;或者 (2)将明细复制到article-record中(这样data-unit会变大,但查询会很简单)。 哪个效率更高?

最佳答案

这是一个设计决策,这意味着没有你分析的所有细节(目标、约束、用户需求等),但我使用了一些经验法则;

1/2 个表之间的连接通常不是很昂贵并且是一个容易调整的情况(例如你说会有很少的更新,我认为插入/删除不会很广泛,并且主要是选择因此这很可能是索引会加速的情况)

2/在设计模式时,首先将其规范化到可能/合理的最高程度,然后当现实世界的场景证明它是值得的时候,再进行非规范化。 (通常决定对特定项目进行规范化然后反规范化效果相当好,如果规范化失败通常不会产生好的结果。

3/在一段时间内规范化会收回成本(在以后的几年里,当您尝试对系统进行一些更改时,真正欢迎和赞扬设计良好的基础)

4/在我看来,非规范化最适合使用即席查询的报告情况。或者换句话说,我认为非规范化的主要原因是让具有高查询-写入/使用比率的报告编写者的生活更轻松

关于MySQL:复制数据与连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/842791/

相关文章:

mysql - 查询获取相同线路 id 但线路 id 不同的问题

python - 非常慢的正则表达式搜索

mysql - 尝试考虑用于存储需要连接的日期范围的最佳数据库模式

c++ - 在 C++ 中将十六进制转换为整数的最快方法是什么?

python - 将记录收集到 Eve/mongodb 中的单个数组中以减少带宽

mysql - 如何更新 JOIN 上的 SQL

php - 为什么第二个连接在我的查询中不起作用?

php - 如何在 PHP 中同时执行多个 mysql 查询?

MySQL 在一组值中查找多个结果

mysql - 访问mysql中最后插入的行