sql-server - 数据库性能提升结构设计

标签 sql-server algorithm entity-framework database-design

我有一个结构性能问题。

我正在准备一个图书销售网站。我有书籍、作者、类别等。我想给用户一些折扣。但是这些折扣可以是关于书、类别、作者甚至可以是关于用户的。我将折扣存储在“折扣”表中并存储类型。当人们列出产品时,我也想显示折扣。如果我加入折扣表和产品表并检查每条记录的总折扣,这对于列表来说是一个巨大的性能问题。您对这种情况和类似情况有什么建议吗?

(注意:我可以将折扣放入产品表并每天使用 sql 作业计算它,但我有更多的表有这个问题。折扣只是一个示例,我想学习解决此类问题的替代方法。)

抱歉我的英语不好,谢谢。

最佳答案

If i join discounts table and product table and check for total discount for each record that is a huge performance issue for listing.

啊。不。10 年前尝试过我们创建的在线商店,我们发现通过内存中的一些简单缓存(商店产品,所有元素在一起)(如果发生变化,我们可以实时显示 5 分钟的过时价格)加上输出缓存我们可以减轻几乎所有性能影响的非 super 简单方法。

做一个清晰的数据库。然后在它上面做一个智能架构。并非每个项目都必须始终从数据库中查询。

关于sql-server - 数据库性能提升结构设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25607707/

相关文章:

c# - 代码优先 Entity Framework 无法更新多对多相关实体

c# - 在 Entity Framework 中添加具有多对多关系的项目

algorithm - 最短路径最大利润

sql - 你能告诉我数据是什么时候插入到表中的吗

sql-server - Entity Framework 中的新对象 - 主键问题

sql-server - 查询以在 SQL Azure 中生成按热门表列出的磁盘使用情况报告?

algorithm - KNN 算法如何工作

algorithm - 桶排序的最坏情况复杂度是多少?

c# - 林克异常 : Function can only be invoked from linq to entities

java - 使用MSSQL数据库类型别名,jooq 3.7.3将它们转换为正确的Java类型,但3.12.3将它们全部转换为java类型Object