相关疑难解决方法(0)

在PDO中使用持久连接有什么缺点

在PDO中,可以使用该PDO::ATTR_PERSISTENT属性使连接持久化.根据php手册 -

持久连接不会在脚本末尾关闭,而是在另一个脚本使用相同凭据请求连接时进行高速缓存和重新使用.持久连接缓存允许您避免每次脚本需要与数据库通信时建立新连接的开销,从而产生更快的Web应用程序.

本手册还建议在使用PDO ODBC驱动程序时不要使用持久连接,因为它可能会妨碍ODBC连接池过程.

显然,除了在最后一种情况下,在PDO中使用持久连接似乎没有任何缺点.但是,我想知道使用这种机制是否存在任何其他缺点,即这种机制会导致性能下降或类似的情况.

php pdo

174
推荐指数
5
解决办法
6万
查看次数

PDO:MySQL服务器已经消失

我有一个脚本,每晚做很多腿部工作.

它使用在循环中执行的PDO预处理语句.

前几个运行正常,但随后我发现它们都失败并出现错误:"MySQL服务器已经消失".

我们运行MySQL 5.0.77.

PHP版本5.2.12

网站的其余部分运行良好.

php mysql pdo

43
推荐指数
2
解决办法
7万
查看次数

Laravel的"soft_delete"是否需要MySQL的索引?

如果我在laravel 4.2(数据库是mysql)中使用软删除,那么每个雄辩的构建查询都有WHERE deleted_at IS NULL.没有索引deleted_at.

  • 大桌子会慢吗?(或者可能没有索引优化IS NULL)
  • 我应该在soft_delete上添加索引吗?

那么,Laravel的"soft_delete"是否需要MySQL的索引?

mysql indexing optimization laravel eloquent

29
推荐指数
3
解决办法
3970
查看次数

在PHP站点突然"MySQL服务器已经消失"错误

今天我的一个网站开始展示

Error Number: 2006
MySQL server has gone away

它是在Apache 2.2.9(Debian),PHP 5.2.6-1 + lenny3(使用CodeIgniter 1.7.1框架)和MySQL 5.0.51a下运行的低流量客户端站点.我显然对这个错误进行了重新研究,但是所有可能的解决方案都意味着有大量的查询可能会超时并重置连接或达到数据包限制.但是,情况并非如此,它是使用最简单的查询处理的小型数据库.为了确保这一点,我编写了几个查询来返回一行,仍然是同样的错误.

数据库凭证很好,我甚至可以直接登录到mysql,运行一些网站的查询并立即获得正确的数据.在同一台服务器上有几个其他站点和数据库的连接,更大的站点,它们都没有问题.

我试过了:

  • 重启MySQL
  • 重新启动整个服务器
  • 寻找日志中的错误(Apache和MySQL都没有)
  • 检查数据库用户权限
  • 改变mysql.connect_timeoutdefault_socket_timeoutPHP
  • 改变max_allowed_packetMySQL
  • 阅读官方文档,论坛和SO中的所有内容,"MySQL服务器已经消失"

新:

  • 在PHP中禁用持久连接
  • 改变wait_timeoutconnect_timeout在MySQL中

更新:

它似乎与我的脚本的执行时间有关:它使用Facebook PHP客户端检索一些信息,这个调用似乎今天随机失败,所以我要么没有来自Facebook的数据或MySQL错误.但令我惊讶的是,没有一个给定的解决方案似乎处理超时.

有任何想法吗?感谢您的时间!

php mysql facebook codeigniter

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×3

php ×3

pdo ×2

codeigniter ×1

eloquent ×1

facebook ×1

indexing ×1

laravel ×1

optimization ×1