• 数据库连接池


    一、为什么要使用数据库连接池?

    数据库连接资源是非常昂贵的,特别是访问数据库需要通过网络的时候,更能体现。单纯的物理连接,会造成性能低下。

    所以引入了数据库连接池的概念,连接池尽可能的重用了资源,大大节省了内存。提高了程序的性能。

    同时也可以对数据库连接池实现更加个性化的管理。

    二、数据库连接池?

    基本思想就是“缓冲池”。相当于架设在应用程序与数据库之前的一个桥梁。最开始的时候,我们直接从数据库中获取连接,

    现在我们从缓冲池中获取连接。同时对于这个“缓冲池”可以进行控制。

    三、数据库连接池工作原理?

    连接池的工作原理主要由三部分组成,分别为连接池的建立、连接池中连接的使用管理、连接池的关闭。

    第一、连接池的建立。一般在系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取。

    连接池中的连接不能随意创建和关闭,这样避免了连接随意建立和关闭造成的系统开销。

    第二、连接池的管理。连接池管理策略是连接池机制的核心,连接池内连接的分配和释放对系统的性能有很大的影响。

    其管理策略是:

    当客户请求数据库连接时,首先查看连接池中是否有空闲连接,如果存在空闲连接,则将连接分配给客户使用;

    如果没有空闲连接,则查看当前所开的连接数是否已经达到最大连接数,如果没达到就重新创建一个连接给请求的客户;

    如果达到就按设定的最大等待时间进行等待,如果超出最大等待时间,则抛出异常给客户。

    当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过就从连接池中删除该连接,否则保留为其他客户服务。

    该策略保证了数据库连接的有效复用,避免频繁的建立、释放连接所带来的系统资源开销。

    第三、连接池的关闭。当应用程序退出时,关闭连接池中所有的连接,释放连接池相关的资源,该过程正好与创建相反。

    四、常见的数据库连接池

    C3P0

    DBCP

    五、用图说话

  • 相关阅读:
    mongodb 初学 意外 连接服务器异常(Connection refused)
    mongodb 关闭服务器
    Redis 入门指令
    mongodb 在 Ubuntu系统上的安装及卸载
    Java 使用 Redis
    随笔 -- IO -- Socket/ServerSocket -- 系统概述
    java enum(枚举)使用详解 + 总结
    Java -- IO -- 目录
    Java 流(Stream)、文件(File)和IO -- Java ByteArrayInputStream类
    INSERT INTO .. ON DUPLICATE KEY UPDATE ...
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5633332.html
Copyright © 2020-2023  润新知