MSSQL 2000 分表 查询

chenzhi0304 2011-06-12 04:58:58
MSSQL 2000 用户表可能容纳100万行用户记录

程序中大多是以ID查询对应的用户信息,我想按ID分表,以提交数据库查询效率

每个表存放5000条记录,先预建200个表,表名和对应的ID值如下:
User_1 id(1~4999)
User_2 id(5000~9999)
User_3 id(10000~14999)
User_4 id(15000~19999)
User_5 ...
User_6
User_7
User_8
User_9
User_10
......

User_200

当新用户注册时,程序检测用户名是否存在,需要在200个表在查询
Select Top 1 id From User_1 Where UserName='chen'
Union All
Select Top 1 id From User_2 Where UserName='chen'
Union All
Select Top 1 id From User_3 Where UserName='chen'
Union All
Select Top 1 id From User_4 Where UserName='chen'
Union All
Select Top 1 id From User_5 Where UserName='chen'
......
Union All
Select Top 1 id From User_200 Where UserName='chen'

使用“Union All”连接200个表查询,查询效率是不是会很低?

我这样分表可行吗?有什么方法可以提高多表查询的效率吗?
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cd731107 2011-06-13
  • 打赏
  • 举报
回复
一个表100条记录并不多啊,还是通过建立索引或视图等方式加快你的查询吧
catmax 2011-06-13
  • 打赏
  • 举报
回复
思路不可取。非要这样,还不如用分页的形式
dawogui 2011-06-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chenzhi0304 的回复:]
引用 4 楼 rucypli 的回复:
为什么要分表 性能有问题吗 这么少的数据完全没必要分表


虽然数据不多,但软件读取更新非常频繁,性能下降,所以考虑分表。
[/Quote]
分与不分,读取的频繁程度不会改变,分了以后,读取得花更多的时间,性能下降得更厉害.
chenzhi0304 2011-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 rucypli 的回复:]
为什么要分表 性能有问题吗 这么少的数据完全没必要分表
[/Quote]

虽然数据不多,但软件读取更新非常频繁,性能下降,所以考虑分表。
rucypli 2011-06-12
  • 打赏
  • 举报
回复
为什么要分表 性能有问题吗 这么少的数据完全没必要分表
chenzhi0304 2011-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maco_wang 的回复:]
为什么每个表只存5000记录?
[/Quote]

每个表存5000条记录,这样单个表查询速度会快些。
dawogui 2011-06-12
  • 打赏
  • 举报
回复
就算用2个表,也只能一个一个查询,貌似没有其他方法.
叶子 2011-06-12
  • 打赏
  • 举报
回复
为什么每个表只存5000记录?

22,209

社区成员

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

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