数据库设计 – 重复列以加快查询速度?
标题没有多大意义,但我想不出更好的标题来解决这个问题. 我有以下表格 项目 > id 顾客 > id 支付 > id 当用户进入系统时,他将可以访问某个项目.现在,我想列出该项目的所有付款,这应该很简单: SELECT FROM payments where id_customer in (SELECT id from customers where id_project = 5) 我的问题是:如果以这种方式将列id_project添加到付款表不是更好,那么查询将更容易,更快捷. 解决方法看来你在问 denormalization是否合理.
答案总是“取决于”,所以这是我的经验法则: 如果…… >数据量不大 然后保持正常化.是的,非规范化更快,但它也意味着您在系统中有冗余数据 – 必须维护并保持同步的数据.这些数据不再是“一个来源”,而是可以偏离的多个来源.随着时间的推移,这是有风险的,所以你不应该这样做,除非你有充分的理由去做,有一些基准支持. 我只会在…时反规范化 >数据量非常大 在现代硬件上加入非常快,但它们永远不会免费. (编辑:娄底站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – 优化LINQ to SQL查询的工具和技术
- sql-server – 在Sql Server中,有没有办法检查选定的一组行
- sql-server – 我可以在SQL R2服务器中创建SQL v10.0数据库
- SQL分隔函数用法是什么?详解分隔函数示例
- sql 存储过程分页代码 匹配亿万庞大数据量
- sql-server – SQL Server存储过程避免游标
- 如何在没有matlabs数据库工具箱的情况下从matlab访问postgr
- sql-server – sys.databases中某些列的排序规则是什么?
- sql的substring函数功能是什么,如何使用?
- SQL server中怎样做锁表和解锁表的操作?
- 如何选择和排序不在Groupy中的列按SQL语句 – Or
- SQL常见数据类型有什么?功能是什么?
- sql-server – 为什么在列大小增加后创建索引需要
- sql-server – 使用T-SQL测试字符串是否为回文结
- sql-server – 执行计划与STATISTICS IO订单
- entity-framework-4 – 如何使用SQL Compact 4首
- 如何在没有matlabs数据库工具箱的情况下从matlab
- sql-server – 模仿group_concat()与GROUP BY结合
- SQL Server如何判断表是否存在?教你两个方法
- sql-server – 在SAN环境中对SQL索引进行碎片整理