在Flask网页应用中,我应该在初始化时加载整个数据库吗?
我正在用Flask开发一个网页应用。我有两种方法来处理用户的请求并返回页面。
- 从数据库中加载请求的数据,然后返回。
- 在初始化时把整个数据库加载到一个Python字典变量中,当有请求时直接返回相关的页面。(整个数据库不大)
我很好奇哪种方法的性能会更好?
1 个回答
1
当然,从内存中获取缓存的数据会更快。不过,你得确保缓存的数据量不会变得太大,而且每次更新数据库的时候都要记得更新缓存。根据你的具体需求,你可以选择使用Python的字典、缓存工具(比如memcached)或者其他的东西,比如前缀树(tries)。
还有一种“中间”的方法。你可以不把数据库里的所有记录都存到内存中,而只是存储请求中的搜索参数和数据库记录的ID之间的对应关系。这样用户发起请求后,你可以快速检查需要的记录ID,然后通过ID去查询数据库,这样速度也很快。