odbc访问mysql效率是不是相当低啊。做了个测试,表记录40000行
select a from test
用odbc查询,遍历总共耗时500ms
用capi查询,遍历总共耗时70ms而且在sqlserver 上用ado测试了同样的表和查询,耗时400ms。难道每个数据库都只能用自带的api接口吗,ado和odbc效率都这么差????
select a from test
用odbc查询,遍历总共耗时500ms
用capi查询,遍历总共耗时70ms而且在sqlserver 上用ado测试了同样的表和查询,耗时400ms。难道每个数据库都只能用自带的api接口吗,ado和odbc效率都这么差????
而ODBC封装后,加了很多开放式标准化的东西在其中,包含对数据类型的转换,兼容等等。所以会差很多也不奇怪。
而oledb是odbc的前身吧capi链接是mysql提供的直接用c语言进行链接
要知道mysql是c写的吧,效率当然高这是个人认为懂的不是很多
sqlserver 用的是 ado调用oledb访问sqlserver。
一般oledb都是对capi的一层封装。那么用ado调用,最多只多了2层封装,慢10倍不可理解。大概知道原因了,是数据集的问题。返回的4w行数据,不管odbc,ado都是面向对象的,构建了4w个row对象。capi都是句柄操作二进制。所以快。