今天我在我的代码中实现了一个讨厌的黑客,其中对数据库的每个请求打开它自己的连接,因为我找不到任何方法来启用MARS(多个活动记录)设置)与MySQL数据库通信时。
在我的C#程序中,我做了大量的并行工作,这对于MSSQL 2005和2008等数据库(追加; MultipleActiveResultSets = true连接字符串)和SQLite(支持它“开箱即用”不是问题“)并且您可以同时从数据库中检索两个数据集。
我所知道的事情:打开与数据库的连接是昂贵的,因为我希望将这些连接保持在最低限度。
有什么建议吗?
答案 0 :(得分:1)
查看MySQL文档中的连接字符串参数(无MAR) -
http://dev.mysql.com/doc/refman/5.5/en/connector-net-connection-options.html
我所知道的事情:打开与数据库的连接是昂贵的,因为我希望将这些连接保持在最低限度。
一直使用连接池! (只需确保每次都使用完全相同的连接字符串。)
答案 1 :(得分:0)
处理这种场景类型的最佳方法是使用存储过程或游标将并行数据处理实现到数据库中,这样就不需要处理非常具体的数据库功能了。
答案 2 :(得分:0)
有什么建议吗?
我不知道是否真的没有办法用MySQL启用MARS,但如果这是正确的,那么我最好的建议是实现连接池。
答案 3 :(得分:0)
Mysql不支持MARS,而是必须保存数据并关闭阅读器或为新阅读器使用其他连接。