@
ugg 运行在类似 workerman php 服务框架中的 mysql (包括 redis 、 mc )等,自然都是长连接,不需使用 pconnect, 因为这里不象 fpm(cgi)会回收所有资源。 而且长连接和 last insert id 没什么必然关系, 业务代码在进行 insert 之后,如果需要 last insert id 后,自然会去取出。每个请求进来,业务流程都是同样的先 insert 再 get last insert id, 正常逻辑下,不会存在请求一进入业务代码,还没进行任何 insert 就去 get last insert id.
另外,在没有使用连接池的情况下,连接是被当前进程独占的,不会存在当前进程 insert 的 id 被另外一个进程获取到。
如果使用了连接池,而且在每次 insert 完之后立即释放连接(此时当前的其他业务代码还未执行完), 则需考虑 last insert id 的问题。 一般这种情况,在数据库访问层框架中会封装一个 insert 方法,此方法将数据 insert 到数据库 》取回 last insert id 》释放连接 》返回 last insert id.