10万条记录,问个关于Access数据库的查询优化问题,请朋友们支招

时间:2020-12-17 23:20:53
帮朋友做一个小软件,需要用到数据库,考虑到成本,我选择了Access。

表结构:(共3个字段)
ID         自增int主键
UserID     用户ID,30字节长度
Content    文本内容,50字节长度,用于存放Email地址

数据总记录大概10万条。

当我在客户端输入一个新的Email时,如何检测是否有重复的?要求效率高!

是先查询是否有该记录?还是直接输入,用异常来判定?我没用过Access,如果是后者,怎样捕捉?不会是程序中用try catch吧?或是还有其它好的方法?

无论什么方法,要求效率高就好,代码麻烦不要紧,谢谢!!

13 个解决方案

#1


补充 在Content上建立了唯一索引

#2


设一个主键,用异常能快一点。就用try catch吧。

#3


10万条数据,可以自己写方法用SQL语句来查询判断,可能比较好点。

#4


我接分

#5


十万条记录,作了索引,使用SQL很快的。这是正常途径

#6


建立一个索引 在你添加的时候会自动提示你 纪录已经存在的

如果用异常的话
你就try{你的插入语句 throw(你自己定义的错误类型)}
catch(错误)
{处理方法}

#7


关注

#8


access是个桌面数据库,查询速度比SQL2k快多了,10万条记录加个索引就可以了

#9


关注

#10


1 错误就在索引的字段上 不该使用Contenct字段 请查看数据库优化之书

改变:
ID         自增int主键
UserID     用户ID,30字节长度
EmailTitl  标题
EmailTime  时间
EmailStyle 收/发
Content    文本内容,50字节长度,用于存放Email地址

分别在 ID,UserID, Title,Time 建立索引 !!


#11


回复人: ttfwind(橙子) ( ) 信誉:100  2004-12-03 22:30:00  得分: 0  
 
 
   建立一个索引 在你添加的时候会自动提示你 纪录已经存在的

如果用异常的话
你就try{你的插入语句 throw(你自己定义的错误类型)}
catch(错误)
{处理方法}
---------------------------------------------------------
同意
一定要给字段加索引,速度会比没有加时快N倍~~

#12


数据库我是不大懂,可以先做下测试,如果速度够就算了,如果不够,我是这么想的。
库可以多分几个表,比如分27个,开头字符为a~z,各占一个表,其余不是字母开头的,占一个表,根据开头字符不同,在不同的表里查询。如果记录更多,比如1百万,1千万,用这个方法,也可以解决。

#13


谢谢各位的帮助,不在content上建立索引好像不太好办,大部分查询都是针对该字段进行的。
maconel的方法我以前用过,效果是比较好,但10万记录好像没有多大必要呵呵

#1


补充 在Content上建立了唯一索引

#2


设一个主键,用异常能快一点。就用try catch吧。

#3


10万条数据,可以自己写方法用SQL语句来查询判断,可能比较好点。

#4


我接分

#5


十万条记录,作了索引,使用SQL很快的。这是正常途径

#6


建立一个索引 在你添加的时候会自动提示你 纪录已经存在的

如果用异常的话
你就try{你的插入语句 throw(你自己定义的错误类型)}
catch(错误)
{处理方法}

#7


关注

#8


access是个桌面数据库,查询速度比SQL2k快多了,10万条记录加个索引就可以了

#9


关注

#10


1 错误就在索引的字段上 不该使用Contenct字段 请查看数据库优化之书

改变:
ID         自增int主键
UserID     用户ID,30字节长度
EmailTitl  标题
EmailTime  时间
EmailStyle 收/发
Content    文本内容,50字节长度,用于存放Email地址

分别在 ID,UserID, Title,Time 建立索引 !!


#11


回复人: ttfwind(橙子) ( ) 信誉:100  2004-12-03 22:30:00  得分: 0  
 
 
   建立一个索引 在你添加的时候会自动提示你 纪录已经存在的

如果用异常的话
你就try{你的插入语句 throw(你自己定义的错误类型)}
catch(错误)
{处理方法}
---------------------------------------------------------
同意
一定要给字段加索引,速度会比没有加时快N倍~~

#12


数据库我是不大懂,可以先做下测试,如果速度够就算了,如果不够,我是这么想的。
库可以多分几个表,比如分27个,开头字符为a~z,各占一个表,其余不是字母开头的,占一个表,根据开头字符不同,在不同的表里查询。如果记录更多,比如1百万,1千万,用这个方法,也可以解决。

#13


谢谢各位的帮助,不在content上建立索引好像不太好办,大部分查询都是针对该字段进行的。
maconel的方法我以前用过,效果是比较好,但10万记录好像没有多大必要呵呵