用户表的索引问题

itboy3000 2004-07-07 12:51:59
一个典型用户表,包括姓名,生日,所在地区,血型,身高,最后登陆时间。。。(总计30个字段,包括一个ntext字段)表机构如下

ID 用户ID int
UserName 用户名 nvarchar
Password 密码 nvarchar
Birthday 生日 datetime
Blood 血型 int
Height 身高 int
Weight 体重 int
Income 收入 int
LoginTime 登陆时间 datetime
...


现状:

1.表字段很多,数据量在200万以上
2.可以对Height,Weight,Income,LoginTime,Birthday..等字段进行组合查询(全部或者部分字段组合)
3.LoginTime更新频率非常高(用户登陆的时候就更新)

求索引方案。
...全文
271 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
leisa 2004-07-12
  • 打赏
  • 举报
回复
我觉得最好把user表拆分,分成多张表
比如可以把LoginTime,UserName,Password等分成一张表
这样可以减小表的规模,方便索引的建立,加快插入、更新、检索速度
chludlf 2004-07-10
  • 打赏
  • 举报
回复
建立索引的時候選下面的不會自動重新計算統計資料.
itboy3000 2004-07-09
  • 打赏
  • 举报
回复
另外还有一个字段 Hot 问题更严重,该字段是表示一个用户的人气指数,程序中有多次对该字段的类似操作:

排序(频率每天5000次): Select ... Order By Hot Desc
搜索(频率每天1000次): Select ... Where Hot > 1000
更新(频率每天10000次): Update ... Set Hot = Hot + 1 Where ID = ..

该字段如果建立索引则更新操作就常常超时,如果不建立前两个操作就超时...苦恼
itboy3000 2004-07-09
  • 打赏
  • 举报
回复
有没有碰到类似问题的朋友一块讨论讨论
leisa 2004-07-09
  • 打赏
  • 举报
回复
但是,这张表经常有插入动作,索引太多会不会影响速度?
itboy3000 2004-07-09
  • 打赏
  • 举报
回复
一个变通的想法不知道是否可行...
如Hot字段,表里建立另一个Hot1的字段
做更新操作的时候更新的是Hot1,查询操作Order BY Hot,然后每天夜里同步Hot1,hot
leisa 2004-07-08
  • 打赏
  • 举报
回复
那在LoginTime上建立一个簇集索引,试试看。
frankwong 2004-07-08
  • 打赏
  • 举报
回复
简单原则,用到的查询条件的字段就创建索引
leisa 2004-07-07
  • 打赏
  • 举报
回复
我想问一下,这张表数据添加的频繁吗?
chludlf 2004-07-07
  • 打赏
  • 举报
回复
Height,Weight,Income,LoginTime,Birthday每個字段單獨建立一個索引
CtrlT 2004-07-07
  • 打赏
  • 举报
回复
mark up!
lczddd 2004-07-07
  • 打赏
  • 举报
回复
这是一个很矛盾的问题啊,期待高手....

frankwong 2004-07-07
  • 打赏
  • 举报
回复
mdf文件会增大
itboy3000 2004-07-07
  • 打赏
  • 举报
回复
请问:索引建立后体现在 DB_Data.MDF 还是 DB_Log会增大>
itboy3000 2004-07-07
  • 打赏
  • 举报
回复
恩,原来没有在LoginTime这个字段上建立索引,昨天晚上建立后数据库就开始堵塞,去掉以后情况稍微好些,但搜索就老超时间..

目前服务器配置应该还是比较好 至强2.4G双CPU,1G内存
postfxj 2004-07-07
  • 打赏
  • 举报
回复
看你經常如何查詢了,不過你可以多建幾個沒關系的,現在空間不是問題呀
itboy3000 2004-07-07
  • 打赏
  • 举报
回复
TO:tyrone98(林林)

1.将你的查询方案改为CBO? 是什么意思?
tyrone98 2004-07-07
  • 打赏
  • 举报
回复
1.将你的查询方案改为CBO。
2.可以对12项分别建索引。
itboy3000 2004-07-07
  • 打赏
  • 举报
回复
简单点说,如果一些字段搜索和更新都很频繁,是否适合建立索引?
itboy3000 2004-07-07
  • 打赏
  • 举报
回复
TO:chj733(八神苍月)
参与搜索的字段有12项..如果按照这个方法..可能需要建立很多.
加载更多回复(3)

34,590

社区成员

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

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