业务逻辑/规则 - 在数据库或内存中处理

4
因为我过于自信,正在开发一个程序,可以比我们目前使用的系统更好地处理一些数据。我的问题是,在实施业务规则(即如果这个数据匹配这个模式,则将其发送到此队列)时,最佳实践是什么:
1. 程序启动时从数据库中加载所有规则到内存中
优点:非常快速 缺点:该程序将有很多规则,可能会占用大量内存
2. 将所有规则放入数据库中,并允许在数据库中进行匹配
优点:不使用大量内存 缺点:需要大量的数据库调用
3. 在内存中设置一个标志,以调用数据库中的特定规则。
优点:不需要大量内存 缺点:仍需要大量的数据库调用
您有什么想法?
2个回答

3

你忘记了你两个极端的结合体——一个比内存中的所有都更智能的缓存。

用没有规则(或几个最受欢迎的规则)初始化缓存。
应用程序从缓存请求规则。
如果规则存在于缓存中,则返回它。
如果不存在,则从数据库加载,将其存储在缓存中,并将其返回给用户。


2
与所有与性能相关的事情一样,您需要尝试各种选项并测量它们的表现。很难预先知道哪个选项适合您。
其中最新的趋势之一是内存数据库。在数据库中执行BI和分析,将整个所需数据集保存在内存中。我们谈论的是几千兆字节的RAM。
您可以考虑这个选项,因为现在它已经不再是异类了。如今RAM价格便宜。也许它适合您。您需要尝试一下。

我得好好研究一下这个。 - Anthony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接