10万条记录,问个关于Access数据库的查询优化问题,请朋友们支招
帮朋友做一个小软件,需要用到数据库,考虑到成本,我选择了Access。
表结构:(共3个字段)
ID 自增int主键
UserID 用户ID,30字节长度
Content 文本内容,50字节长度,用于存放Email地址
数据总记录大概10万条。
当我在客户端输入一个新的Email时,如何检测是否有重复的?要求效率高!
是先查询是否有该记录?还是直接输入,用异常来判定?我没用过Access,如果是后者,怎样捕捉?不会是程序中用try catch吧?或是还有其它好的方法?
无论什么方法,要求效率高就好,代码麻烦不要紧,谢谢!!
问题点数:50、回复次数:13Top
1 楼happyct(绿叶对大树的情怀)回复于 2004-12-03 15:12:25 得分 0
补充 在Content上建立了唯一索引Top
2 楼ntahua(阿华)回复于 2004-12-03 15:14:55 得分 5
设一个主键,用异常能快一点。就用try catch吧。Top
3 楼WbtServer(金刀客)回复于 2004-12-03 16:04:06 得分 5
10万条数据,可以自己写方法用SQL语句来查询判断,可能比较好点。Top
4 楼zlc990405(alfred)回复于 2004-12-03 18:38:24 得分 0
我接分Top
5 楼zjsyw(冰狗)回复于 2004-12-03 19:36:49 得分 5
十万条记录,作了索引,使用SQL很快的。这是正常途径Top
6 楼ttfwind(橙子)回复于 2004-12-03 22:30:53 得分 5
建立一个索引 在你添加的时候会自动提示你 纪录已经存在的
如果用异常的话
你就try{你的插入语句 throw(你自己定义的错误类型)}
catch(错误)
{处理方法}Top
7 楼samchoy(老蔡)回复于 2004-12-03 22:33:31 得分 5
关注Top
8 楼liuhszh()回复于 2004-12-04 18:25:14 得分 5
access是个桌面数据库,查询速度比SQL2k快多了,10万条记录加个索引就可以了Top
9 楼xiaomatian(趴趴熊◎%#……※×)回复于 2004-12-04 20:27:27 得分 5
关注Top
10 楼ZengMuAnSha(曾牧暗鲨)回复于 2004-12-04 21:42:20 得分 5
1 错误就在索引的字段上 不该使用Contenct字段 请查看数据库优化之书
改变:
ID 自增int主键
UserID 用户ID,30字节长度
EmailTitl 标题
EmailTime 时间
EmailStyle 收/发
Content 文本内容,50字节长度,用于存放Email地址
分别在 ID,UserID, Title,Time 建立索引 !!
Top
11 楼h98458(零点起飞)回复于 2004-12-04 22:16:38 得分 5
回复人: ttfwind(橙子) ( ) 信誉:100 2004-12-03 22:30:00 得分: 0
建立一个索引 在你添加的时候会自动提示你 纪录已经存在的
如果用异常的话
你就try{你的插入语句 throw(你自己定义的错误类型)}
catch(错误)
{处理方法}
---------------------------------------------------------
同意
一定要给字段加索引,速度会比没有加时快N倍~~Top
12 楼Maconel(Maconel)回复于 2004-12-05 00:41:13 得分 5
数据库我是不大懂,可以先做下测试,如果速度够就算了,如果不够,我是这么想的。
库可以多分几个表,比如分27个,开头字符为a~z,各占一个表,其余不是字母开头的,占一个表,根据开头字符不同,在不同的表里查询。如果记录更多,比如1百万,1千万,用这个方法,也可以解决。Top
13 楼happyct(绿叶对大树的情怀)回复于 2004-12-05 19:33:22 得分 0
谢谢各位的帮助,不在content上建立索引好像不太好办,大部分查询都是针对该字段进行的。
maconel的方法我以前用过,效果是比较好,但10万记录好像没有多大必要呵呵Top




