首页 新闻 搜索 专区 学院

sql全文检索的性能如何?

0
[已解决问题] 解决于 2009-02-17 22:49

小弟最近在学习这个全文检索,也进行了查询时间的测试,感觉是不是记录数量太少(几千吧),查询时间居然不到一秒,不管是不是开启全文检索,请问是怎么回事呢?从这里我看不出全文检索的有什么优势O

Jack Fan的主页 Jack Fan | 初学一级 | 园豆:36
提问于:2009-02-17 11:40
< >
分享
最佳答案
0

关系数据库查询的时间开销主要包括:网络延迟,磁盘访问,sql分析,内存访问(缓存)等。

在我们的oracle系统中,对近百万的商家名数据进行全表扫描查询,比如:select * like '%酒店%' from xxx,时间大约也就是几秒这样的数量级。对这样的大表,开销一般以磁盘访问为主,所以索引的效果非常突出。相比之下几千条数据对数据库来讲其实是非常小的数目,一般数据库都可以全部缓存起来,而在内存缓存中进行全表扫描和索引查询的差别就不那么明显了,这时网络延迟通常是最主要的因素。所以,你可以多进行一些实验,看看查询开销主要是在哪一个因素上。

另外,对于BerkeleyDB和Lucene来讲,不存在网络延迟问题,效率都很高。尤其BerkeleyDB通常每秒可以执行数万次查询。理论上,除开网络延迟,SQLServer的全文索引效率应该与BerkeleyDB和Lucene接近。

Todd Wei | 初学一级 |园豆:170 | 2009-02-17 20:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册