首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否应该缓存SQL数据库数据并在本地查询?或者让应用程序直接查询数据库?

是否应该缓存SQL数据库数据并在本地查询?或者让应用程序直接查询数据库?
EN

Stack Overflow用户
提问于 2019-04-30 14:50:46
回答 3查看 401关注 0票数 1

我正在用C#制作一个应用程序,这是我将添加到我的投资组合中的第一个专业项目。该应用程序连接到远程SQL Server并查询特定的表,以获取学生信息、课程详细信息以及每门课程的学生注册数据等数据。

我的问题是,即使查询在大多数情况下只返回一条记录,是否需要缓存表?只有3个表(学生、课程、注册),并且课程是唯一不会经常更改的表,至少与其他两个表相比是这样。

简而言之,该应用程序是一个CLI,允许用户查看学校课程、注册学生和学生各自在这些课程中的注册情况。该应用程序具有输入学生信息的功能,如姓名、邮寄地址和联系信息,然后将这些信息保存到SQL Server中。课程的详细信息也是如此,比如CourseID、名称和描述。以及注册,服务器在其中加入记录中的StudentID和CourseID,以显示指定的学生已注册该课程。

我目前正在运行MSSQL的本地实例,但计划创建一个轻量级虚拟机来容纳SQL服务器,以复制远程访问方案。

我认为,如果将应用程序部署到大规模环境中,表将增长到很大的大小,而一个简单的查询可能需要一些时间才能远程执行。

如果我预想到表将增长到很大,我是否应该实现缓存系统?或者我应该出于良好的实践才这么做?

到目前为止,查询执行得非常快。然而,这可能是因为MSSQL安装是本地的,或者是因为这些表目前只有2-3条样本数据记录。我计划在未来创建更多的样本数据,看看执行时间是否可控。

EN

回答 3

Stack Overflow用户

发布于 2019-04-30 15:41:28

缓存是一种优化工具。尽量避免过早优化,特别是在你不知道(甚至猜不出)你在优化什么(CPU,网络,硬盘速度等)的情况下。

请记住,数据库在搜索和检索数据方面非常高效。如果有足够的硬件可用,数据库引擎的性能将始终优于C#缓存结构。

缓存的用处是在网络延迟(数据库和应用程序之间)是一个问题或聊天应用程序设计(在一次交互/页面加载中对小表进行多个简单的DB调用)的场景中。

票数 1
EN

Stack Overflow用户

发布于 2019-04-30 15:36:58

对于一个C#应用程序(桌面/移动设备)来说,缓存系统是一个很好的practice.But你可以在没有缓存系统的情况下为学校做一个项目,因为它不会对你的应用程序性能造成太大的影响。你想不想用它,由你自己决定。

票数 0
EN

Stack Overflow用户

发布于 2019-04-30 16:16:44

对于要频繁访问但不会频繁更改的数据类型,缓存是一个很好的选择。在你的案例中,它将适用于你所说的数据不会频繁变化的“课程”。

但是,对于将来会增加大小并需要频繁插入/更新的数据,最好考虑优化存储和从数据存储中检索它们的方式。在您的例子中,表‘Student’和'Enrollment‘就是这样的表,预计随着时间的推移会有大量的插入/更新。

因此,最好编写优化的过程来对这些表执行CRUD操作,并在这些表上保持正确排序的索引。与缓存结果相比,它不仅提供了更好的数据可管理性,而且还提供了您想要的性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55915385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档