【发布时间】:2011-05-29 00:48:24
【问题描述】:
我在本地机器上有一个数据库,它被尽可能快地重复查询。
目前我在每个查询之前执行mysql_real_connect(),然后在之后执行mysql_close()。由于速度至关重要,因此连接和重新连接会产生不可接受的开销。
我做了一些研究,发现了一个mysqli 命令来创建一个持久连接(mysqli_pconnect)。不幸的是,我没有使用 PHP(我正在使用 FreePascal/Lazarus 中的 mysql50 库)并且 mysqli 库对我不可用;我必须接受标准的mysql_* 命令。
有人有解决办法吗?
【问题讨论】:
-
这是一个基于 Web 的应用程序,还是作为常规系统可执行文件运行的应用程序?如果它是常规可执行文件,请不要调用
close()。 -
它是一个常规的可执行文件。我已经尝试消除
mysql_close(),但如果我这样做了,我会在发送下一个查询时遇到读取访问冲突。 -
您可能不得不关闭前一个查询,但 mysql 库没有理由不允许您重用句柄。否则像临时表和服务器端变量之类的东西是不可能的。
-
对以前的查询执行
mysql_free_result()以关闭它们,这应该为另一个查询释放句柄。 -
当你说“关闭前一个查询”时,你指的是什么命令?另外,我已经阅读了有关将
mysql_options()设置为CLIENT_RECONNECT的信息 - 但这似乎不是正确的事情。
标签: mysql persistence mysqli mysql-connector