【问题标题】:PHP/MYSQL - Multiple connections to the same database?PHP/MYSQL - 到同一个数据库的多个连接?
【发布时间】:2017-03-05 15:22:09
【问题描述】:

我有两个文件:

config.php

$con = mysqli_connect("$dbhost","$dbuser","$dbpass","$dbname");

ads.php(config.php 需要一次):

$query1 = mysqli_query($con,"SELECT * From XXXX where id = 'XXXX'");

$query2 = mysqli_query($con,"SELECT * FROM XXXX2 WHERE id = 'XXXX2'");

我有超过 40 个不同的查询 mysqli_query() 使用 $con。请记住,我所有的逻辑都是过程式的,而不是面向对象的。

我的两个问题是:

  1. 我是否在每个查询中都使用不同的连接连接到数据库?还是在第一个执行时只执行一次?有一个更好的方法吗?

  2. 我知道关闭 mysql 连接不是强制性的,因为它会自行关闭,但是由于我们有数百万次咨询,有时在用户离开 PHP 文件后,一些咨询可能会挂起并停留超过 10 秒。如果我想关闭一个连接,我应该将 mysqli_close($con) 放在文件的末尾(在 40 次咨询之后)还是在每次咨询的末尾(40 次)?

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 如果你的代码是有效的,你最好在codereview.stackexchange.com提出你的问题
  • 一个 mysql 连接甚至可以持久地用于多个 http 请求。其他一切确实是一个巨大的性能问题。这意味着关闭连接实际上会减慢速度。

标签: php mysql database


【解决方案1】:

您正在重用在mysqli_connect 中发起的连接。

更好的方法是使用或创建 DataHandler 并实现 PDO。它可以让您对查询执行时序分析、自动绑定参数、完成连接后销毁连接等。

在文件末尾调用mysqli_close($con)。还 null $con 标记垃圾回收。

完成每个步骤的信息后,您也可以调用; mysqli_free_result($query1)free memory 关联到语句句柄

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    相关资源
    最近更新 更多