让我说我有一个调用PHP :: PDO的函数,该函数打开一个连接,运行MySQL,关闭连接,返回一些数据。
我没有看到任何严重的问题,但有什么理由说这是一个不好的做法?这样做有什么风险?
答案 0 :(得分:2)
我没有发现任何风险,但建立连接存在网络延迟。当您刚刚连接到localhost
时,它可能会正常工作,但如果您为每个HTTP请求建立多个连接,并且您希望移动到辅助数据库服务器,那么您的应用程序可能会出现扩展问题原因。
PHP页面本质上是单线程的,所以除非你自己启动多个线程,否则没有(额外的)并发问题。使用InnoDB和SQL事务来帮助防止多个请求之间的并发问题仍然是一个好主意。
答案 1 :(得分:1)
多次打开和关闭连接涉及相当多的开销。在它成为性能问题之前,这并不是一件大事。如果它确实成为问题,您将需要修改它以在脚本持续时间内保持连接打开,并为多个数据库事务重用相同的连接。这是一种相当普遍的做法。
如果每个脚本没有固定(和小)数量的数据库事务,我建议不要在每个操作上连接和拆除连接。而是打开它一次并保持连接直到脚本终止。
答案 2 :(得分:0)
只要您没有更多的查询要运行,我就不会将此视为一个问题。