Ram 或 DB 表中的表,以获得最佳性能
Posted
技术标签:
【中文标题】Ram 或 DB 表中的表,以获得最佳性能【英文标题】:tables in Ram or DB tables, for best performances 【发布时间】:2016-08-16 04:27:32 【问题描述】:我正在使用 java 编写服务器应用程序(聊天服务器端),它接收请求并发送到目标。
-
我在数据库中有几个表,当服务器
应用程序启动时,我对其进行了编程以复制
数据库映射表(在内存中),以加快拉动
在应用程序运行时推送数据。
这种剂量正确吗?或者您建议我在需要详细信息时直接从数据库中提取数据。并删除地图
公羊的桌子!?
我遇到了内存泄漏。
处理数据库会减慢应用程序的速度吗?
【问题讨论】:
如果将所有数据都放在内存中,应用程序将无法针对大量用户进行扩展。您能否更具体地说明您的应用程序。应用程序需要支持哪些功能?有多少用户?您期望有多少数据? ... thanks @skyWalker.... 它是基于 xmpp 的聊天服务器,我添加了许多附加功能,现在用户数为 300,消息有效负载是带有 12 个字符串字段的 map在内存中缓存全部或部分数据是否有意义取决于您的用例。它可以提高性能,但会增加可能不需要的复杂性。
您可以将数百万甚至数十亿条记录加载到 JVM 中,但除此之外,您还需要一个堆外存储,例如用于此目的的数据存储或数据库。使用堆外内存,您可以在 JVM 中拥有数万亿条记录,但这很少需要。
【讨论】:
我这样做并处理数据中的每一个修改:在每次更改中修改数据库和表.. --- 我这样做是因为我相信从 RAM 中提取数据比从数据库中提取数据更快----。这是真的吗? @EsmaeelQash RAM 会更快,前提是您有适当的索引并加载了所需的所有数据。以上是关于Ram 或 DB 表中的表,以获得最佳性能的主要内容,如果未能解决你的问题,请参考以下文章
Django South:结合“alter table”以获得更好的性能?
如何优化 1Gb 大小 250k+ 行的 Mysql 表以获得更好的性能
以在 Oracle 和 SQL Server 中获得最佳性能为目标的数据建模