Item |
MySqlClient (.NET) |
MySQLDirect (.NET) |
收费 |
免费 |
商业,价格由购买的许可证的类型决定,但是我们可以下载它的试用版. Trial version of MySQLDirect .NET is a fully working version during 30 days period. ·1 Standard License ¥1000 ·1 Professional Liecnese ¥1500 ·1 Standard site license ¥6950 ·1 Professional site license ¥9950 ·1 Standard Upgrade License ¥500 ·1 Professional Upgrade License ¥700 |
版本 |
1.0.8 |
3.5.5 |
源码 |
开源 |
商业 |
连接串 |
Persist Security Info=False;database=gametest;server=192.168.8.76;user id=root;Password=;charset=gb2312;Pooling=true;Min Pool Size=0;Max Pool Size=10;Connection Lifetime=10 |
User ID=root; Password=pwd; Host=localhost; Port= 3306;Database=test;Direct=true; Protocol=TCP; Compress=false; Pooling=true; Min Pool Size=0;Max Pool Size=100; Connection Lifetime=0 |
连接池 |
支持 |
支持高级连接池特征。 |
下载 |
www.mysql.com |
http://crlab.com/download.html |
测试表 |
CREATE TABLE `I_money` ( `id` int(4) unsigned NOT NULL auto_increment, `type` tinyint(1) unsigned NOT NULL default ‘0’, `id_source` int(4) unsigned NOT NULL default ‘0’, `id_target` int(4) unsigned NOT NULL default ‘0’, `number` int(4) unsigned NOT NULL default ‘0’, `chk_sum` int(4) unsigned NOT NULL default ‘0’, `time_stamp` int(4) unsigned NOT NULL default ‘0’, PRIMARY KEY (`id`), KEY `index_type` (`type`), KEY `index_source` (`id_source`), KEY `index_time` (`time_stamp`), KEY `idx_target` (`id_target`) ) TYPE=MyISAM; |
|
记录数级 |
3,500,000 |
|
测试平台 |
.Net 1.1 + MySQL 3.51 + CPU Celoen1.7 + 内存512M |
|
SELECT |
测试语句 select * from e_money where id > " + GetRandomIndex().ToString() + " limit 1000 |
|
:开始测试Select操作10000次 :结束测试Select操作10000次 :耗时(秒):857.96875 :异常(次):0 :成功(次):10000 :内存消耗保持在23M左右 :CPU占用率高 |
无论是否开启连接池设置,无论设置Max Pool 为多少 :开始测试Select操作10000次 :内存消耗渐增到220M(开启连接池) 410M(未开启),直至程序崩溃 :CPU占用率不高 |
|
INSERT |
|
|
UPDATE |
|
|
DELETE |
|
|
结论 |
|
无论是否开启连接池设置,无论设置Max Pool 为多少,在多次操作下,内存泄漏会导致程序崩溃. |
最终的测试结论出乎我的意料.作为商业用途的MySqlDirect竟然不能够完成测试,而在开源的MySqlClient中,select insert,update,delete的表现让我满意.