每个查询都会创建一个新的 CONNECTION_ID()
Posted
技术标签:
【中文标题】每个查询都会创建一个新的 CONNECTION_ID()【英文标题】:Every query creates a new CONNECTION_ID() 【发布时间】:2012-12-02 16:05:06 【问题描述】:我向mysql
服务器发出的每个 SQL 查询都会创建一个新的(增量)CONNECTION_ID()
。这既发生在我的本地服务器上,也发生在我的共享远程服务器上。
这就是LAST_INSERT_ID()
和ROW_COUNT()
导致0
背后的原因吗?如何解决这个问题?
原在MySQL: LAST_INSERT_ID() returns 0
【问题讨论】:
MySQL 服务器没有命令行。有一个单独的命令行客户端实用程序可以连接到 MySQL 服务器。你指的是这个吗?如果是这样,您是否设置了非默认的connect_timeout
?
我的错。我的意思不是我的phpmyadmin
的简单 SQL 查询框。让我检查超时。
请记住 last_insert_id 仅适用于自动递增的字段,而不是手动给定的..
【参考方案1】:
默认情况下,PersistentConnections
在 phpMyAdmin 中被禁用。
这是
LAST_INSERT_ID()
和ROW_COUNT()
导致0
背后的原因吗?
是的。
如何解决这个问题?
启用持久连接:
$cfg['PersistentConnections'] = TRUE;
【讨论】:
在INSERT
之后解决了LAST_INSERT_ID()
、ROW_COUNT()
仍然是0
。打算进一步测试它
无论如何,当 phpmyadmin 配置文件不可用时(在远程共享上),除了在桌子上做一个 SELECT
之外,没有办法得到一个 last_id
?以上是关于每个查询都会创建一个新的 CONNECTION_ID()的主要内容,如果未能解决你的问题,请参考以下文章
操作系统:为什么IO操作不占用CPU却会导致进程阻塞?Web服务器每接收一个请求都会创建一个新的线程吗?Tomcat服务器工作原理?