我正在开发一个分层的网络应用程序。简而言之,它有:
UI:html、javascript 和 jquery
领域逻辑:Java 和 servlet
业务逻辑:MySQL
我在数据库中有大量包含书籍信息的记录。此外,该应用程序将被很多用户同时使用。我想让用户在搜索文本字段中输入一本书的“名称”,比如“book1”并使用jquery autocomplete显示一个下拉列表。
数据库中的记录是不可更新的,因为它们永远不会改变。
考虑到可靠的设计模式,哪个更好(性能和速度方面):
将这些数据库记录预加载到域逻辑的缓存对象中,并让用户从该对象中搜索(查询)它们?还是使用 MySQL 全文搜索之类的方法直接从数据库中查询?
如果使用 MySQL 全文搜索,我担心许多用户同时对数据库进行大量调用。至于预加载到缓存对象中,我不确定这是否是一个好的软件实践,有人推荐吗?我应该为记录设置一个计时器以保持缓存在内存中吗?
这两种方法中哪一种更可取?对于这种情况,还有其他更好的方法吗?