时间:2021-07-01 10:21:17 帮助过:2人阅读
我发现了下面这篇文章:
http://www.cnblogs.com/liuhaorain/archive/2012/02/19/2353110.html
另外,因为我们用了Mysql 数据库,类库不是微软提供的,所以我担心mysql 没有实现连接池,所以自己测试了一下,结果很明显,mysql 也同样支持。
附测试代码和结果:
class Program { static void Main(string[] args) { MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["mysql"].ConnectionString); DateTime startTime = DateTime.Now; Console.WriteLine(startTime.ToLongTimeString()); for (int i = 0; i < 100; i++) { conn.Open(); conn.Close(); } DateTime endTime = DateTime.Now; Console.WriteLine(endTime.ToLongTimeString()); Console.WriteLine("连接100次,使用时间(ms):"+(endTime-startTime).ToString()); Console.ReadLine(); } }
配置文件:
启用连接池:(默认的)
<add name="mysql" connectionString="server = 192.168.2.101; user id = root; password = password; database = Test; Pooling=true;"/>
不启用连接池:
<add name="mysql" connectionString="server = 192.168.2.101; user id = root; password = password; database = Test; Pooling=false;"/>
每种配置我都运行了三遍:
使用连接池的时候,执行100次时间为0.477秒
不使用连接池的时候,时间是6.56 秒,相差极大。
总之,在Ado.net 里,不需要自己实现连接池,只要设置好参数就可以了。
C# ADO.net 数据库连接池
标签: