我有一个asp.net core 2.2应用程序托管为azure应用程序服务。这偶尔会收到大量的突发流量。许多资源都用于验证邮政编码。对邮政编码表的查询均为选择。没有更新或插入。这些查询是性能瓶颈。桌子本身约为700mb。我一直在寻找一种在启动时将此特定表存储在内存中的方法,可能将其作为单独的db上下文。是否可以在启动时用连接到SQL DB的主上下文中的数据填充此辅助db上下文?这是一个坏主意吗?
答案 0 :(得分:1)
将它们放入内存不是一个好主意。您可能已经在天蓝色使用共享资源,因此这将影响性能。不知道您的限制,但我可以建议以下内容。
向上扩展
,如果您可以尝试扩大数据库实例。肯定会有所帮助。
查询优化
如果尚未进行查询优化,请进行。寻找最佳实践。
只读副本
如果您的表是跨国数据库的一部分,则可以创建只读副本。只读副本已针对读取查询进行了优化。
缓存
您可以考虑像Redis这样的分布式缓存。取决于您的桌子如果要查找数据,则使用备用缓存模式按需建立数据。
NoSQL /数据仓库
RDBMS的性能受许多因素影响。在跨国数据库中访问如此庞大的数据将仍然是一个挑战。如果您的业务案例允许,则可以使用NoSQL数据存储或数据仓库解决方案。