Access,Mysql数据库速度测试

Access在多个数据库多表中读取

Release版直接点击exe下运行

以MMQ工程为例,读取desi类型数据库

1.105个数据库,每个数据库169个表,共 151336条记录,时间:31

2.数据库连接及表格连接(不读取内容),时间:23

3.数据库连接,时间:1 

Access在1个数据库1个表中读取

Release版直接点击exe下运行

以MMQ中的MMQ0185_0001.mdb为例,读取MMQ0185_0001.mdb数据库

1.1个数据库,读取scom表,共 162259条记录,25个字段,时间: 10

2. 1个数据库,读取scom表,共 293325条记录,35个记段,时间:20

3. 1个数据库,读取scom表,共 293325条记录,9个记段无值的数值型字段, 时间:3

Mysql在1个数据库1个表中读取

Release版直接点击exe下运行

以MMQ中的MMQ0185_0001.mdb为例,读取MMQ0185_0001.mdb数据库

1.1个数据库,读取scom表,共 292147条记录,25个字段,时间:24

单全亮(634772208)  10:42:48
一、读取并解析293325条记录(25列,release下测试)
 1、使用ole db访问access
结果:平均消耗43797ms,去除for循环中临时对象CString的构造,平均消耗25787ms,提速41%
 2、使用ODBC访问mysql5.5(使用8.0版本测试结果差不多)
测试结果:消耗51044ms
 3、使用mysql c lib访问mysql5.5(使用8.0版本测试结果差不多)
结果:消耗11373ms

二、带where条件读取并解析条纪录(从293325条中选出16671条记录,25列,release下测试)
 1、使用ole db访问access
结果:平均2699ms
 2、使用ODBC访问mysql5.5(使用8.0版本测试结果差不多)
结果:平均4524ms
 3、使用mysql c lib访问mysql5.5(使用8.0版本测试结果差不多)
结果:2193ms

本次测试结论:
1、使用ole db技术访问,access相对来说占优,使用mysql自带c接口访问,mysql占优。
2、对底层有效率要求的代码,要注意代码编写。本次测试中发现构造CString对象,
消耗还有挺大的,要排查代码,去除循环中频繁构造CString对象的情况。

3.ODBC访问access比ole db慢

2019/4/15 - 2019/4/16
1、修改了持久层频繁构造的CString(改成static或从循环体中去除,移至外层),使用SAM工程下的SITE STABILIZER测试,Retrive所有结点数据消耗7秒左右。
对时间并没有太大的改善。
2、SQL语句修改:将SELECT * 换成形如SELECT col1, col2, ...的语句,随着列减少,消耗有较明显提高,
测试数据:从293325条中选出16671条记录,25列平均消耗125ms, 12列94ms
3、将EnvId与ElementID合成一列存在数据库,有待测试;合并..or..or..语句,减少调用select语句数,有待测试。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值