在上一个项目的性能测试中,发现瓶颈主要在对数据库的操作上,原来的系统对数据库操作只有一个连接,而IO操作的效率相对于计算的效率而言简直是一种不可容忍的。所以就产生了在这个项目中使用数据库连接池这种想法。
由于时间比较紧张,碰巧在网上找到了一个开源的数据库连接池,所以也就诞生了这篇博文。
当然对于技术实力比较强的团队来说,可以会选择根据自己的需要去自己去做一个连接池。
首先介绍一下这个libzdb ;
libzdb的官方说明的特性:
- Thread safe Database Connection Pool
- Connect to multiple database systems
- Zero runtime configuration, connect using a URL scheme
- Supports MySQL, PostgreSQL, SQLite and Oracle
补充:缺点:不支持window,所以如果要是在windows下开发的时候可能不是很方便,但是libzdb的邮件列表反馈很及时,在列表中提出的问题,一般一两天就会
得到官方的工程师的回答
它的几个相关网站如下:
http://www.tildeslash.com/libzdb/# libzdb的offiCal website
libzdb是由这家公司开发的,所以质量应该可以值得信任
libzdb的代码使用googlecode上代管
https://code.google.com/p/libzdb/
当时的安装系统是redhatlinux ,直接下载代码编译安装
./configure; make ; make install
当时的使用数据库环境为oracle11gr2
基本的使用可以参看源代码中的示例代码,在test目录下,但是
基本的使用为:
在程序启动的时候,调用url_new 和 connectpool_new来初始化连接池
1、调用 connection_start启动连接池
2、后面的就可以在线程中或者在具体的处理流程中调用getcon来获得连接,进而执行sql语句即可
3、在程序结束的时候要对应调用url_free和connection_pool_free来释放资源
上面就是对libzdb的基本介绍。
欢迎和各位进行交流,email:jiajiama0107@gmail.com