日期:2014-05-17  浏览次数:20528 次

多线程访问数据库,该用静态数据库连接 还是动态创建好呢?
做一个实时的交易系统,同一时刻可能会有50左右的数据操作,涉及三张数据库表(A 、B、c)
主要有以下交易:
1、查询 查询A表数据返回 (目前静态连接)
2、交易 向B表写一条数据,同时更新A表一条数据的一个字段 (目前静态连接)
3、上传记录 向C表写100条数据数据 (目前动态连接)

由于项目比较急,平时技术积累不够,所以向兄弟们讨教



------解决方案--------------------
这个不是什么好的使用。使用所谓的“静态连接”直接就是死路,因为多线程共享调用时就会产生冲突,你的程序就会直接垮掉。只有一些只有在自己的电脑上编程的人才会那样设计所谓的“高效”的程序,实际上(上线后)哪怕只要有十几个用户同时使用,不出几分钟你的程序就因为频繁垮掉而不得不下线了(否则继续使用的话用户会嘲笑死你们公司的产品的)。

所以必须new一个独立的DbConnection对象实例,而不是什么共享。

如果真的在意效率,你应该知道连接池概念。你创建了新的逻辑连接对象,那么底层就会据此智能地从连接池中共享物理连接。而假设你根本不创建新的逻辑连接对象,你就根本用不到连接池技术。