我正在寻找一种使用PHP MySQL innoDB连接的有效方法,但却无法在网上找到确凿的信息。
据我所知,持久连接比非持久连接快得多,
我们可以通过以下方式设置连接:
$instance_mysqli = new mysqli('p:127.0.0.1', 'username', 'password', 'db');
然而,从官方网站上,它说默认行为是"重置"在重用,这是较慢的。 http://php.net/manual/en/mysqli.persistconns.php
mysqli扩展通过自动调用来完成此清理 C-API函数mysql_change_user()。自动清理功能有 但优点和缺点。优点是 程序员不再需要担心添加清理代码了 被自动调用。但是,缺点是代码 可能会慢一点,作为执行代码的代码 每次从中返回连接时都需要运行清理 连接池。
所以,没有办法将参数传递给上面的构造函数以避免"重置"?唯一的方法是从文档建议的源代码中重新编译扩展名吗?
我的另一个问题是......如果mysqli非常聪明,默认情况下它可以自动重置连接,那么很多人仍然使用非持久连接,这甚至更慢。
答案 0 :(得分:2)
连接的成本非常小,无论是否持久,是否有清理。
通常,应该在程序开头获取一个连接,并保持到结束。 (有一些例外。)
唯一一次真正引起连接的是你在每个SQL查询之前获得连接。
底线:担心您的索引,系统设计等,而不是获取连接。