检索性能问题

goldenzerg 2008-03-21 01:52:29
现在有100万的数据分100张相同的表存储,检索需要按'time' 字段排序显示32000条检索内容。
目前 我使用 union all,如(select * from 'table1' where(...) union all select * from 'table2' where(...) ......union all select * from 'table100' where(...))order by time desc limit 32000;
这样做一次的时间是300秒
有什么办法能检索快一点呢?
貌似索引遇到了分表就没有什么用了,limit 和 order by一起用也没有什么加速作用.
问一下 这句sql语句怎么写才好呢??请各位高手帮帮忙
...全文
173 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
sams_wang 2009-08-20
  • 打赏
  • 举报
回复
表结构很不合理,100个表进行UNION ALL,那就怎么优化估计也优化不到那里去了;
建议楼主再建一个表(设置好相关的索引),然后再在之前的100个表中创建INSERT/UPDATE触发器,每次有新的数据就同时把新的数据库保存到新建的表中,以后查询数据的时候就从新的表进行查询了,这样处理对于你现在的情况应该是一个比较可行的解决方法了
lylm 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 goldenzerg 的帖子:]
现在有100万的数据分100张相同的表存储,检索需要按'time' 字段排序显示32000条检索内容。
目前 我使用 union all,如(select * from 'table1' where(...) union all select * from 'table2' where(...) ......union all select * from 'table100' where(...))order by time desc limit 32000;
这样做一次的时间是300秒
有什么办法能检索快一点呢?
貌似索引遇到了分表就没有什么用了,limit 和 order by一起用也没有什…
[/Quote]
1.有必要分那么多表吗?意义何在?一个表100万数据也不算多,这样,只要time有索引,100万检索32000肯定很快
2.就算分,少分些也会有很大提高,100张表Union太夸张了
3.能不排序的话会有很大提高,问题出在这里,就算每个表time上都有索引,order by time也用不上这些索引,它需要Union后再排序
heipn 2009-05-25
  • 打赏
  • 举报
回复
有这样的需求干嘛要分表啊!
winshion 2009-05-20
  • 打赏
  • 举报
回复
为什么要分100张表来做呢?有没有测试过,一张表的效率高 还是你这样的效率高?
dawn023 2009-03-13
  • 打赏
  • 举报
回复
mark
guobaiya 2009-03-02
  • 打赏
  • 举报
回复
建索引可以提高效率吧
quningstudy 2009-02-24
  • 打赏
  • 举报
回复
up
ooily 2008-12-19
  • 打赏
  • 举报
回复
帮顶
wap21 2008-12-19
  • 打赏
  • 举报
回复
帮顶
jackleipm 2008-12-19
  • 打赏
  • 举报
回复
3楼的没说全。现在time上建立索引(所有的表均是),然后查询语句中where 后面第一个条件应该是关于time字段的条件。这样下来只要不到1秒即可查询出来。
android2008 2008-11-30
  • 打赏
  • 举报
回复
up
hbwhwang 2008-11-30
  • 打赏
  • 举报
回复
做一个视图,可能会快一点
sdqd321 2008-11-24
  • 打赏
  • 举报
回复
不懂,up
android2008 2008-11-24
  • 打赏
  • 举报
回复
不懂,up
zhangyanxxxx 2008-11-24
  • 打赏
  • 举报
回复
在time字段上建立索引
liaoyi_ipanel 2008-09-28
  • 打赏
  • 举报
回复
up
yeah920 2008-09-28
  • 打赏
  • 举报
回复
帮忙顶一下,让了解的人来解答.

256

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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