我正在使用 Flask 开发网络应用程序。我有 2 种方法来返回用户请求的页面。
- 从数据库中加载请求数据然后返回。
- 在初始化时将整个数据库加载到 python 字典变量中,并在请求时返回相关页面。 (整个数据库不会太大)
我很好奇哪种方法会有更好的性能?
最佳答案
当然从内存中的缓存中获取数据会更快。但是您必须确保数据量不会变得太大,并且每次更新数据库时都会更新缓存。根据您的确切目标,您可以选择 python dict、缓存(如 memcached)或其他东西,例如 tries。
为此还有一种“中间”方式。您可以在内存中存储的不是数据库中的全部记录,而是请求中的搜索参数与数据库中记录的 ID 之间的对应关系。这样用户发出一个请求,你就可以快速查看需要记录的id,然后通过id查询你的数据库,速度还是很快的。
关于python - 我应该在 Flask Web 应用程序初始化时加载整个数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23317286/