access大量数据如何查询才好(100分)

  • 主题发起人 主题发起人 ccdarkness
  • 开始时间 开始时间
C

ccdarkness

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个access数据库,50万条记录
表结构:
id(自动编号) contents(文本)
contents的内容是一个文件路径,如:"C:/WINDOWS/system32/DirectX/Dinput"
我想查询:"DirectX",如果用like语句:select contents from 表名 where contents like '%DirectX%' 查询会很慢的,如果不用like怎么样查询contents中包涵字符串"DirectX"的数据?
 
这么多数据量,怎么使用access。
好像没有什么特别好的方法。你可以把前面的%去掉,稍微快一些。
 
这种情况加了索引,效率的提高也不会太大.在like语句的前面有%必然会全表扫描的
 
可以尝试一下:
SELECT *
FROM 表1
where Instr("window", contents) <> 0
 
确实数据是大了些,我在自己电脑装sql 2000,使用全文索引就快了,但是使用网页查询就必须要sql server,我查了一些数据库服务器提供商,都不支持全文索引,因为sql2000的索引不能备份,要在新的服务器上重新填充,这个很耗服务器资源,access好像没有全文索引
xiammy的方法跟使用like '%%' 没什么分别,还是要搜索全部数据
zywcd的办法也试验过,这个就查不到数据了,因为路径名称不一定是我要查的字符串的前部
 
sql 2005就可以备份全文索引,但是没看到那个服务商使用的是sql2005
 
路径数据有50万有点不明白
不过你表的结构有点问题,所以才会出现这个问题
select contents from 表名 where contents like '%DirectX%'会使contents栏位索引失效所以很慢
建议如果可以重新设计表结构
如:ID-DIR-CONTENTS
这样建立树状结构,让文件层层建立下来。
 
在ACCESS下,如果把50万条分解成若干个表来存储,例如5万条记录一个表,你在十个表中查十次的速度会不会比一个表中查5万条要快一些???
 
其实这50万条数据是在13个表里,但查询的时候都要搜索每一个表,分开查好像更加慢
 
重新设计表结构
可以增加表的栏位,数据比较大无所谓,只要在查询的时候不会使索引失效就可以了
一个1000万数据量的表在索引的查询下照样不操作1秒钟就可以搞定
 
lunsoon,可以说清楚点吗?
问题是我查询的是某个字符串,比如在一个表中查找"DirectX"
表的结构我写出来了,这样的结构要怎么建立索引?
 
我使用的是Access MDB数据库,一般有五百多万条数据,MDB文件大于1.5G,小于1.9G,而且全部数据都在一个表内,用 like %xxx% ,不用复合查询的话,一般在3~5秒内,复合查询的话,在15秒内。
 
用 ~*DirectX
又可不可以?
 
多人接受答案了。
 
后退
顶部