V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hayanami
V2EX  ›  问与答

mysql 连接会话原理求教

  •  
  •   hayanami · 2018-06-12 13:02:25 +08:00 · 796 次点击
    这是一个创建于 2145 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先介绍一下情况: 第一次搞了个存储过程产生了个临时表,然后在关联临时表取数据,测试的时候发现请求后会话是没有关闭的,临时表一直存在,且刷新页面后会产生其他会话(因临时表没有清空数据,每次请求都会往表里加数据,结果多次刷新,显示的数据上下变动)

    自我理解:
    	数据库连接池的存在,使得请求后产生一个连接一个会话 A,创建临时表(返回结果正常),连接保持
        第一次刷新后,再次请求,连接保持,且同一会话 A,临时表数据累加(返回结果*2,错误)
        第二次刷新后,再次请求,连接保持,创建另外一个会话 B,再次创建临时表(返回结果正常)
        第三次刷新…………结果返回要么正常,要么是反复累加的结果
        
    求教:
    1、同一页面的多次刷新请求对数据库而已是否为同一用户,是否会创建不同会话
    2、会话什么时候关闭,当一个 sql 结束,返回相应的结果后,会话会保留多久关闭
    3、如果一个 service 方法不加事务注解,调用多个 sql 语句,且每条 sql 语句之间有一定的时间间隔,是否会产生多个会话执行 sql,甚至是多个连接执行 sql
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5436 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 08:59 · PVG 16:59 · LAX 01:59 · JFK 04:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.