sql数据库表多是否影响查询效率?

wuxixujia 2010-07-19 01:14:45
数据库中AllData表有9千多万条数据
表中有三个字段
ID为bigint
ReadingDate为datetime
ReadingValue为real
ID和ReadingDate为联合主键
这样查询这张表时
速度极慢

后来我把这些数据分类
根据ID不同变成了三千多张表
每张表有三万条数据
想查询某个ID的数据时
就查询其对应的表

请问数据库中如果有很多很多张表,是否会影响整个数据库的查询效率?
另外直接查询AllData表还是查询其分类表?哪种查询方式速度更快?
...全文
731 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cobra21th 2010-07-21
  • 打赏
  • 举报
回复
应该不是用 一个电表对应一张表来解决的
wuxixujia 2010-07-19
  • 打赏
  • 举报
回复
问题已解决

主要是
电表牵扯到部门组织结构树
例如
A部门下有B部门
B部门又分C部门D部门
每个部门又有自己对应的电表
如果要查A部门用了多少电
就牵涉到子部门套子部门的子查询
这样效率就很低

最后引入部门编码
插数据时就把对应的组织结构插入表中
以后就查询方便了
guguda2008 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xujia66 的回复:]

引用 1 楼 beirut 的回复:
用不到的表是不会影响你用到的表的

不知道你能不能理解,你们的表也真够多的了

是这样的
我们是做电表监控
一个ID代表一块电表
现在有三千多块电表
然后每一个小时采集一下电表数据
我现在要查询某块电表的以往数据(这个速度还算可以)
关键是要统计某一段时间内对应部门的用电数,有电表与部门的关联表,这样就会牵涉到子查询之类,速度就极慢
[/Quote]
查询慢可以建索引,不用分表。9000W不算多
Dingnifei123 2010-07-19
  • 打赏
  • 举报
回复
有点意思,不过觉得你这种做法有些奇特,

如果有10W个电表怎么办?

不停的建数据表来对应每个电表吗?

SQL SERVER 2008最多可以建多少个表?
budong0000 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xujia66 的回复:]

引用 1 楼 beirut 的回复:
用不到的表是不会影响你用到的表的

不知道你能不能理解,你们的表也真够多的了

是这样的
我们是做电表监控
一个ID代表一块电表
现在有三千多块电表
然后每一个小时采集一下电表数据
我现在要查询某块电表的以往数据(这个速度还算可以)
关键是要统计某一段时间内对应部门的用电数,有电表与部门的关联表,这样就会牵涉到子查询之类,速度就极慢
[/Quote]

依需求,那就建立部门表,我觉得一个表也是可以的了。定期备份走历史数据,重建索引,索引建议分开建。
wuxixujia 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hao1hao2hao3 的回复:]
在查询分类表时,你怎么决定去查哪个分类表?这是不是也要有一个过程?
[/Quote]
看4楼的说明
wuxixujia 2010-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 beirut 的回复:]
用不到的表是不会影响你用到的表的

不知道你能不能理解,你们的表也真够多的了
[/Quote]
是这样的
我们是做电表监控
一个ID代表一块电表
现在有三千多块电表
然后每一个小时采集一下电表数据
我现在要查询某块电表的以往数据(这个速度还算可以)
关键是要统计某一段时间内对应部门的用电数,有电表与部门的关联表,这样就会牵涉到子查询之类,速度就极慢
永生天地 2010-07-19
  • 打赏
  • 举报
回复
有影响,但比放在一个表里要强很多
hao1hao2hao3 2010-07-19
  • 打赏
  • 举报
回复
在查询分类表时,你怎么决定去查哪个分类表?这是不是也要有一个过程?
黄_瓜 2010-07-19
  • 打赏
  • 举报
回复
用不到的表是不会影响你用到的表的

不知道你能不能理解,你们的表也真够多的了

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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