我目前正在编写一个简单的RESTful
Web 应用程序(使用 PHP),但我不确定如何有效地处理数据库访问。问题是创建与我的 MySQL 数据库的连接非常耗时。
我的第一个想法是创建一个 Singleton 作为数据库管理对象,它仅在尚未建立连接时才连接到数据库。
但是,我的连接对象始终为空,因为我猜测客户端发出的每个请求都会在服务器上重新加载 php 脚本文件。因此,对于需要访问数据库的每个请求,都必须初始化连接。
有没有可以用来避免这个问题的设计模式或技术?
从持久数据库连接:
如果创建到 SQL 服务器的链接的开销很高,则持久连接是好的。这种开销是否真的很高取决于许多因素。比如,它是什么类型的数据库,它是否位于您的 Web 服务器所在的同一台计算机上,SQL 服务器所在的计算机的负载情况等等。底线是,如果连接开销很高,持久连接对您有很大帮助。它们导致子进程在其整个生命周期内仅连接一次,而不是每次处理需要连接到 SQL 服务器的页面时。这意味着每个打开持久连接的子节点都将拥有自己的到服务器的打开持久连接。例如,
这是mysql_pconnect文档页面。