数据库连接池

来源:互联网 发布:爱棋艺国际象棋软件 编辑:程序博客网 时间:2024/04/29 18:45


数据库连接池

频繁的数据库连接操作势必占用很多的系统资源,影响速度必定下降。程序出现异常而未能关闭,将会导致数据库体统中的内存泄漏,最终将不得不重启数据库。刺痛资源被毫无顾忌的分配出去,如果连接过多,也可能导致内存泄漏。服务器崩溃

连接池的工作原理

为数据库连接建立一个缓冲池。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。通过设定连接池最大连接数来防止系统无休止的数据库连接。更为重要的是可以通过连接池的管理机制监视数据库的连接数量、使用情况、为系统开发、测试及性能调整提供依据。

连接池的工作流程

  • 持久层向连接池申请一个连接。连接池返回一个空闲连接。
  • 如果没有空闲连接,那么就检查连接池中的连接数量是否达到最大连接数。
  • 如果没有到达最大连接数,则建立新的连接对象放入连接池。
  • 如果到达最大连接数,那么用户就需要等待,这时可以设置最大等待时间来控制用户的等待状态。
  • 等待时间内有别的连接对象被释放,那么就分配给等待用户。如果超时,那么返回null。

Hibernate常见的优化策略

  • 用高版本的hibernate
  • 制定合理的缓存策略
  • 采用合理的session管理机制
  • 尽量使用延迟加载
  • 如有可能,采用UUID作为主键生成策略
  • 如有可能,选用乐观锁代替悲观锁
  • 在开发中,显示hibernate执行SQL语句,从而指定更好的实现策略
  • 复杂查询和统计查询可以使用SQL语句完成,甚至可以考虑使用储存过程完成。
0 0
原创粉丝点击