odbc访问mysql效率是不是相当低啊。做了个测试,表记录40000行
select a from test
用odbc查询,遍历总共耗时500ms
用capi查询,遍历总共耗时70ms而且在sqlserver 上用ado测试了同样的表和查询,耗时400ms。难道每个数据库都只能用自带的api接口吗,ado和odbc效率都这么差????

解决方案 »

  1.   

    你掌握所有it技能和你精通lamp那个公司爱要
      

  2.   

    呵呵,楼上的不解按道理ado到oledb到api应该只是多了2层封装而已,,怎么查这么多。。是不是recordset的性能特别低?
      

  3.   

    API 是直接由MYSQL公司提供的,可以说连什么驱动都没有,是直接操作。当然会效率高很多。
    而ODBC封装后,加了很多开放式标准化的东西在其中,包含对数据类型的转换,兼容等等。所以会差很多也不奇怪。
      

  4.   

    odbc不用于ado
    而oledb是odbc的前身吧capi链接是mysql提供的直接用c语言进行链接
    要知道mysql是c写的吧,效率当然高这是个人认为懂的不是很多
      

  5.   

    搞明白了。谢谢楼上几位。我用的是ado,myql没有好的oledb,所有只能ado调用odbc访问mysql。
    sqlserver 用的是 ado调用oledb访问sqlserver。
    一般oledb都是对capi的一层封装。那么用ado调用,最多只多了2层封装,慢10倍不可理解。大概知道原因了,是数据集的问题。返回的4w行数据,不管odbc,ado都是面向对象的,构建了4w个row对象。capi都是句柄操作二进制。所以快。