我开发了一些类似于 DAO 的自定义类来满足我的项目的一些非常特殊的要求,该项目是一个不在任何类型的框架内运行的服务器端进程。
该解决方案效果很好,只是每次发出新请求时,我都会通过 MySQLdb.connect 打开一个新连接。
将其切换为使用 python 中的连接池的最佳“直接”解决方案是什么?我正在想象类似 Java 的公共 DBCP 解决方案。
该进程运行时间较长,并且有许多线程需要发出请求,但不是同时发出请求……具体来说,它们在短暂爆发地写出一大块结果之前做了相当多的工作。
编辑添加:
经过更多搜索后我发现anitpool.py http://furius.ca/antiorm/看起来不错,但由于我对 python 比较陌生,我想我只是想确保我没有错过一个更明显/更惯用/更好的解决方案。
在MySQL 中?
我想说不要担心连接池。它们通常是麻烦的根源,并且对于 MySQL,它们不会为您带来您所希望的性能优势。从政治上讲,走这条路可能需要付出很大的努力,因为在这个领域有太多关于连接池优点的最佳实践和教科书的废话。
连接池只是无状态应用程序(例如 HTTP 协议)的后 Web 时代和有状态长寿命批处理应用程序的前 Web 时代之间的桥梁。由于连接在前 Web 数据库中非常昂贵(因为没有人过去太关心建立连接需要多长时间),后 Web 应用程序设计了这种连接池方案,以便每次命中都不会产生如此巨大的处理开销在关系型数据库管理系统上。
由于 MySQL 更像是一个网络时代的 RDBMS,因此连接非常轻量且快速。我编写过许多大容量 Web 应用程序,它们根本不使用 MySQL 连接池。
只要不存在需要克服的政治障碍,如果不这样做,您可能会受益匪浅。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)