大数据量的查询优化?

yangyunzhao 2011-03-21 05:01:29
我有一个数据库,其中表中每条记录代表一条事件。
基本列有:EventID(int) Category(int) Subcategory(int) TimeStamp(longlong) IsOK(int) IsDo(int) Level(int) 后面还有多列,但是和查询无关。

我的查询语句类似于: select * from Table where TimeStamp>=xxx and TimeStamp<=xxx and (category in(1,2,3) or(category=0 and subcategory in(1,2,3)) and IsOK=1 and IsDo=0 and Level>=xxx limit 256 offset 0

其中EventID是主键。


当数据量在1000万条的时候,上面的查询大概几分钟才能结束。如果我是 select * from Tabel limit 256 offset 0 大概1~3秒返回。

请问该如何优化??非常感谢!!!
...全文
180 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一叶之舟 2011-08-09
  • 打赏
  • 举报
回复
我试过oracle中几千万条记录很快的,就1秒左右
一叶之舟 2011-08-09
  • 打赏
  • 举报
回复
一是创建索引,要根据数据的特性创建不同的索引,(请问是什么数据库)
二是SQL中条件的次序,根据数据特点,不同次序查询效率不一样。
E_jinghui 2011-08-03
  • 打赏
  • 举报
回复
angelgy880505 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 deqiang135 的回复:]
如果数据已经达到千万级别了,建议不直接去数据库读取数据了,用缓存吧,效率会提高很多的。

索引是必须的了,在要查询的字段创建索引。。
[/Quote]
"如果数据已经达到千万级别了,建议不直接去数据库读取数据了,用缓存吧"
怎么实现从数据库到缓存再到读取缓存中的数据呢?
请问你可以提供具体的源码不?谢谢喽!angelgy2010@163.com

yangyunzhao 2011-07-11
  • 打赏
  • 举报
回复
没人么?来个接分的吧,结了算了。谢谢
deqiang135 2011-07-11
  • 打赏
  • 举报
回复
如果数据已经达到千万级别了,建议不直接去数据库读取数据了,用缓存吧,效率会提高很多的。

索引是必须的了,在要查询的字段创建索引。。
疯行无忌 2011-07-11
  • 打赏
  • 举报
回复
我也在做性能优化的课题,没有头绪中..
yangyunzhao 2011-03-21
  • 打赏
  • 举报
回复
sqlite数据库

8,028

社区成员

发帖
与我相关
我的任务
社区描述
高性能数据库开发
社区管理员
  • 高性能数据库开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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