我正在查看 Flask 教程,它建议为每个 Web 请求创建一个新的数据库连接。这是做事的正确方法吗?我一直认为数据库连接应该只为每个线程创建一次。能否做到这一点,同时使用 Flask 或其他 Python Web 服务器将应用程序保持线程安全。
最佳答案
出于学习目的可能是的。但是在生产环境中运行的实际应用程序中,这根本不是一个理想的情况。
通常,您总是希望在应用程序和数据库之间有一个连接池。无论您使用哪种语言/数据库,这都是一种常见的解决方案。
一个数据库连接池维护着许多打开的连接。应用层只需要一个没有被使用的连接,当应用层不再需要它们时,连接就会被释放。 “释放”是指它们被返回到池中以便再次使用。
底线,连接不是根据请求打开/关闭的。它们从/向数据库连接池获取/释放。
例如,对于 Python 和 mysql,您可以使用 PySQLPool .
关于python - 如何在 python Web 服务器中保留数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688413/