单机300万条数据记录查询

a854468521 2010-07-11 10:29:54
打算做一个书库,收集了7000+本书籍拟使用sqlite数据库(嵌入式单文件数据库,可以支持1TB文件,没使用过的可以设想为ACCESS)
书籍内容2.5GB,想实现快速内容查询比如输入“衣带渐宽终不悔,为伊消得人憔悴。”,立即查询到:
宋 柳永
蝶恋花

伫倚危楼风细细,望极春愁,黯黯生天际。
草色烟光残照里,无言谁会凭阑意?

拟把疏狂图一醉,对酒当歌,强乐还无味。
衣带渐宽终不悔,为伊消得人憔悴。

已经测试
1:将内容设置为TEXT字段,有记录14万条,查询速度慢;
2:将内容设置为VARCHAR字段(255),添加索引并排序,有记录300万,数据库文件增加大6.8G,查询速度慢。
使用:select * from Content where id=1 耗时零点几毫秒;
使用:select * from Content where Content_Chapter like '%韦小宝%' Limit 1 耗时10分钟以上!
暂不考虑按照书籍分类划分为多个数据库文件,如何才能实现内容快速查询。


...全文
166 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyunsheng613 2010-11-10
  • 打赏
  • 举报
回复
300万应该很快吧。我试过3000W查询也能有1500/s左右的速度哦。还没有索引的。
a854468521 2010-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
按照内容查询建立全文检索
http://www.sqlite.org/fts3.html
[/Quote]
sqlite3通过使用fts3虚表支持全文搜索 ,需要使用C来自定义的分词器,C不会、E文也差,汗!
vip__888 2010-07-11
  • 打赏
  • 举报
回复
可以使用全文索引或者第三方组件
比如lucene.net
以牺牲空间换时间的方式来实现。
mayonglong 2010-07-11
  • 打赏
  • 举报
回复
索引咯~
这么多数据稍微慢点也正常~
wuyq11 2010-07-11
  • 打赏
  • 举报
回复
按照内容查询建立全文检索
http://www.sqlite.org/fts3.html
wiki14 2010-07-11
  • 打赏
  • 举报
回复
优化索引,
尽量不要用* ,
优化语句,
升级硬件,
wonsoft 2010-07-11
  • 打赏
  • 举报
回复
1、索引
2、建关键字集合
研究一下Google是如何查询的吧,能解决你更大容量的检索

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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