VB access数据库查找速度慢

bgj1094342369 2017-11-17 11:05:22
我用access做了一个数据库1600万行,只有2列,一列索引,一列文本
但是查找数度太慢了,有没有什么办法,我是用普通的
"select * from table1 where column1 like" & "'%" & Lt & "%' or column1 like" & "'%" & Rt & "%'"

还有例如我要按索引返回1500001-1500003 行,这样有没有什么快速的方法?
我是用
"select * from table1 where index>=" & Result(0, LBound(Result, 2)) - 1 & " and index<=" & Result(0, UBound(Result, 2)) + 1

但是速度好慢啊
...全文
563 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
饮水需思源 2017-12-07
  • 打赏
  • 举报
回复
数据量大建议用sql
bgj1094342369 2017-11-20
  • 打赏
  • 举报
回复
引用 6 楼 of123 的回复:
试试在你的数据表“索引”字段上建立一个数据库索引。这样,当你查找记录时就不必遍历整个数据表。
'创建索引
idx.Name = "index"
idx.Columns.Append "index"
tbl.Indexes.Append idx
这样算么
of123 2017-11-20
  • 打赏
  • 举报
回复
试试在你的数据表“索引”字段上建立一个数据库索引。这样,当你查找记录时就不必遍历整个数据表。
脆皮大雪糕 2017-11-20
  • 打赏
  • 举报
回复
引用 楼主 bgj1094342369 的回复:
我用access做了一个数据库1600万行,只有2列,一列索引,一列文本 但是查找数度太慢了,有没有什么办法,我是用普通的
"select * from table1 where column1 like" & "'%" & Lt & "%' or column1 like" & "'%" & Rt & "%'"
还有例如我要按索引返回1500001-1500003 行,这样有没有什么快速的方法? 我是用
"select * from table1 where index>=" & Result(0, LBound(Result, 2)) - 1 & " and index<=" & Result(0, UBound(Result, 2)) + 1
但是速度好慢啊
问题1:如果你是对字符串字段使用like,那么是使用不上索引的,1600万行全表搜索,慢是必然的。 问题2:你的index字段做主键或者有唯一索引的话应该不会慢到哪里去。 此外,是这张表有一个字段叫index么?
赵4老师 2017-11-17
  • 打赏
  • 举报
回复
换“全文检索”?
X-i-n 2017-11-17
  • 打赏
  • 举报
回复
1600万行数据量对access来说是大了,有条件的话迁到SQL SERVER吧。 第一个查询是对文本进行like处理,本身在效率上就会打个折扣,但是表结构已经是最简单的情形了,没有什么优化的余地。第二条直接对索引查询,也是没有优化的空间。
bgj1094342369 2017-11-17
  • 打赏
  • 举报
回复
不会用sql。。。
赵4老师 2017-11-17
  • 打赏
  • 举报
回复
引用 3 楼 bgj1094342369 的回复:
[quote=引用 2 楼 zhao4zhong1 的回复:]
换“全文检索”?

全文检索是个啥?[/quote]
bgj1094342369 2017-11-17
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
换“全文检索”?
全文检索是个啥?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧