设计一表和多表的检索效率比较

Falleyes 2014-07-20 12:05:03
一般把需求设计成一个表,这个表的记录数会因为数据的不断加入变得很大很大。
相比,把这个表处理一下,分成多个表来存储记录。
我要使用的是select top NUM * 这样的检索语句,那么上面两种表的设计方式有没有效率上的差异?
...全文
141 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Falleyes 2014-07-20
  • 打赏
  • 举报
回复
引用 3 楼 yupeigu 的回复:
得看你top xx 这个有没有order by。 另外,我不建议分表处理,随着时间的推移,表肯定是越来越多的,相反,我建议用分区表, 分区表从逻辑上来说是一个表,但从物理上,是多个表。
是有Order By的,那就是说使用分区表就相当于做了一次排序的划分?这样在同区检索效率会上升?
Falleyes 2014-07-20
  • 打赏
  • 举报
回复
引用 6 楼 yupeigu 的回复:
[quote=引用 4 楼 Falleyes 的回复:] [quote=引用 3 楼 yupeigu 的回复:] 得看你top xx 这个有没有order by。 另外,我不建议分表处理,随着时间的推移,表肯定是越来越多的,相反,我建议用分区表, 分区表从逻辑上来说是一个表,但从物理上,是多个表。
是有Order By的,那就是说使用分区表就相当于做了一次排序的划分?这样在同区检索效率会上升?[/quote] 分区表的分区字段,和你的order by的字段如果一样,那么就会在同一个分区中检索了,如果不一样,那么效率也不会好,当然还得看,是否在你的order by的字段上有无索引[/quote]哦~受教了
LongRui888 2014-07-20
  • 打赏
  • 举报
回复
引用 4 楼 Falleyes 的回复:
[quote=引用 3 楼 yupeigu 的回复:] 得看你top xx 这个有没有order by。 另外,我不建议分表处理,随着时间的推移,表肯定是越来越多的,相反,我建议用分区表, 分区表从逻辑上来说是一个表,但从物理上,是多个表。
是有Order By的,那就是说使用分区表就相当于做了一次排序的划分?这样在同区检索效率会上升?[/quote] 分区表的分区字段,和你的order by的字段如果一样,那么就会在同一个分区中检索了,如果不一样,那么效率也不会好,当然还得看,是否在你的order by的字段上有无索引
LongRui888 2014-07-20
  • 打赏
  • 举报
回复
得看你top xx 这个有没有order by。 另外,我不建议分表处理,随着时间的推移,表肯定是越来越多的,相反,我建议用分区表, 分区表从逻辑上来说是一个表,但从物理上,是多个表。
霜寒月冷 2014-07-20
  • 打赏
  • 举报
回复
建议分多表来存储,记好年份标记
xiaoxiangqing 2014-07-20
  • 打赏
  • 举报
回复
一个表检索速度快些,但数据会有冗余。要适当的分几个表
shoppo0505 2014-07-20
  • 打赏
  • 举报
回复
光是select,而且num小于单表数据数目的话,两种设计基本一样,性能的耗费,主要是后from后面的一些操作。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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