一个table中总共有60万行数据,
id为主键索引,
hits为点击量,用户每访问一次加1有几个页面会用到select top 50 id,hits from [table] order by hits desc. 由于用到缓存,每分钟数次。但是每个页面都用到update [table] set hits=hits+1 where id=123456 每秒上百次。理论上hits变化频繁,不应该加索引,但是我查看日志发现在用hits排序时有时会出现SQL超时的错误。
我现在有点想加索引,但害怕加了索引后会经常出现update超时的情况。怎么解决这个问题呢?
id为主键索引,
hits为点击量,用户每访问一次加1有几个页面会用到select top 50 id,hits from [table] order by hits desc. 由于用到缓存,每分钟数次。但是每个页面都用到update [table] set hits=hits+1 where id=123456 每秒上百次。理论上hits变化频繁,不应该加索引,但是我查看日志发现在用hits排序时有时会出现SQL超时的错误。
我现在有点想加索引,但害怕加了索引后会经常出现update超时的情况。怎么解决这个问题呢?
设置创建索引期间每个索引页的页级别中可用空间的百分比。
ONLINE
--这两个选项加上CREATE NONCLUSTERED INDEX [IX_table] ON [dbo].[table]
(
[hits] DESC
)WITH (PAD_INDEX = ON, ONLINE = on, FILLFACTOR = 20) ON [PRIMARY]
GO
2、增加缓存机制,减少UPDATE 次数
2、增加缓存机制,减少UPDATE 次数
2、增加缓存机制,减少UPDATE 次数