1. 速度真实排名(VB6 + .mdb)
从快到慢:
- DAO 3.51 / 3.6(原生 Jet 引擎) → 最快
- ADO + Jet OLEDB 4.0 → 次之,差距很小
- ADO + ODBC → 明显慢
- ADO + MSDASQL + ODBC(你那种)→ 最慢
DAO 确实是理论最快的,因为它就是 Access 自己的原生引擎。
2. 为什么 DAO 更快?
- DAO 直接调用 Jet 数据库引擎
- ADO 还要包装一层 OLE DB
- DAO 少一层 COM 封装,循环取字段时开销极低
典型场景:
- 循环 10 万条记录读字段
- DAO 明显比 ADO 快一点(大约 5%~20%)
3. 但为什么老司机都不推荐 VB6 用 DAO?
因为坑极大,而且现代系统问题超多:
- DAO 是 100% 32 位 组件64 位 Windows/64 位 Office 完全不能用
- Windows 10/11 越来越不自带 DAO经常出现 "类未注册"
- 多线程、多用户并发容易死锁
- 错误处理弱,调试难
- 不能用 ADO 的高级功能(事务、批量更新、Stream、XML 等)
4. 现实选择(99% 人应该这样选)
如果你:
- 只在 32 位 XP / Win7 32 位 跑
- 追求极致速度
- 数据库就是单机小 .mdb
- 不考虑未来迁移→ 用 DAO 3.6 最快
否则:
→ 用 ADO + Jet OLEDB 4.0 速度只差一点点,但稳定、兼容、好维护、不易出诡异错
5. 最实用结论(给你一句话版)
- DAO 确实最快,但只适合老 32 位单机环境。
- ADO Jet 速度接近 DAO,但兼容性、稳定性强太多。
- 你现在那种 MSDASQL+ODBC 是最慢的,没有之一。
6. 如果你想,我可以给你:
- DAO 最快连接代码
- ADO 最优连接代码
- 两者速度对比测试代码(循环 10 万条实测)