数据表设计寻求一好的解决方案

zywhao 2012-09-11 11:56:26
我的系统是一地理信息信息 主要记录汽车的位置

1. 现在有数据表tbLocation 现有数据量40W左右 字段有20项,主要字段为【userid,longition,latition,receiveTime】
2. 平均每秒钟有大约3500条记录在更新或添加

存在的问题:更新比较缓慢

经常用到的查询有:
1. userid (为9位唯一的,是主键)
2. 根据longition,latition,receivetime 来查询最近15分钟内在范围内的记录。。


这个表该如何来设计呢, 才能加快查询和更新的速度
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Nice 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
我的系统是一地理信息信息 主要记录汽车的位置

1. 现在有数据表tbLocation 现有数据量40W左右 字段有20项,主要字段为【userid,longition,latition,receiveTime】
2. 平均每秒钟有大约3500条记录在更新或添加

存在的问题:更新比较缓慢

经常用到的查询有:
1. userid (为9位唯一的,是主键)
……
[/Quote]

对应查询 (2. 根据longition,latition,receivetime 来查询最近15分钟内在范围内的记录。。)
LZ是否考虑使用分区,利用时间字段receivetime 进行分区。
利用分区可以大大缩小索引查找的范围。
  • 打赏
  • 举报
回复
可以考虑对longition,latition,receivetime建组合索引
發糞塗牆 2012-09-11
  • 打赏
  • 举报
回复
userid做主键,但不要做聚集索引,你这样试试。
zywhao 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

1、如果2005以上,建议按照地区做分区。
2、在longition,latition,receivetime 做聚集索引。
3、我想知道平时主要更新哪些列?
[/Quote]

基本上这20个字段除了userid不更新外,其它的都有可能更新,但并不是每次都会更新所有的,
發糞塗牆 2012-09-11
  • 打赏
  • 举报
回复
1、如果2005以上,建议按照地区做分区。
2、在longition,latition,receivetime 做聚集索引。
3、我想知道平时主要更新哪些列?

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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