我正在使用 ASP.NET 和 MySQL 开发 Web 应用程序,但我没有使用 SqlClient 提供程序。
我在某处读到(我不记得在哪里),如果我需要建立连接池,我需要向文件 web.config
添加一些行。
要建立连接,每个模型中都会定义一个连接字符串,例如:
string sqlConnection =
"server=localhost; user id=root; password=***; database=test; pooling=true;Min Pool Size=0; Max Pool Size=60;";
要连接并进行查询,我执行以下操作:
MySqlConnection conection;
conection = new MySqlConnection(sqlConnection);
string query = "SELECT COUNT(*) FROM documents WHERE user_id = ?user_id;
MySqlCommand cmd = new MySqlCommand(query, conection);`
cmd.Connection.Open();
cmd.Prepare();
cmd.Parameters.Add("?user_id", userID);
cmd.ExecuteReader();
...
cmd.Connection.Close();
但是我想打开一个连接池并使用连接池,我不想每次都打开和关闭一个连接。
我将其放入 web.config
文件中:
<connectionStrings>
<remove name="LocalMySqlServer"/>
<add name="LocalMySqlServer"
connectionString="Data Source=localhost; userid=root; password=***; database=test; Pooling=true; Min Pool Size=50; Max Pool Size=100;"
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
但是当我启动开发服务器时,我在MySQL Workbench中看不到任何连接。 。
只有当我调用模型并打开连接时才会发生这种情况。
如何在启动时进行连接池?
最佳答案
我认为您误解了连接池的概念。
连接池是数据库驱动程序或提供程序提供的一种机制。您仍然需要请求连接,但驱动程序/提供程序不会在每次创建连接时创建一个全新的连接,而是维护一个现成的预热对象池并向您提供其中一个。
这一切都在幕后悄然发生。
更新:
要使用 web.config
中的连接字符串:
string sqlConnection =
ConfigurationManager.ConnectionStrings["LocalMySqlServer"].ConnectionString;
您可能需要添加对 System.Configuration
的引用:
并添加:
using System.Configuration;
到类文件的顶部。
这是针对.NET 4.0项目的,但原理与.NET 2.0相同。
关于c# - 使用 MySQL 和 ASP.NET MVC 的池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5501955/