首页 新闻 会员 周边 捐助

字符串做主键的优化

0
悬赏园豆:10 [已解决问题] 解决于 2019-01-25 11:39

因为历史遗留问题,现有SQLServer中使用了大量的GUID主键、字符串主键。

比如微信粉丝表用OpenID做主键,现在数据量在100万+,而且还在不停增长。

OpenID还在不停的插入数据表,索引基本没有效果,索引碎片率高达99%。

页面分页也是非常慢的。

各位有没有这方面的优化经验可以介绍一下的。谢谢

Dhoopu的主页 Dhoopu | 初学一级 | 园豆:10
提问于:2019-01-22 19:36
< >
分享
最佳答案
0

不停插入没问题.应该是在不停修改吧..
你每日数据库备份任务里.重建下索引.
这应该是最简单的办法了.

收获园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2019-01-22 22:34

谢谢。

确实也是数据在不停修改。但是主键是没有修改的。主键是只有新建插入了。

重建索引应该是有效果,就是数据量比较大,估计重新建索引估计也是很费时间和数据库资源的。

Dhoopu | 园豆:10 (初学一级) | 2019-01-22 22:54

@Dhoopu: 你们数据库没有每天晚上凌晨2点备份的那个计划吗.
放到里面就好了.

吴瑞祥 | 园豆:29449 (高人七级) | 2019-01-22 22:57

@吴瑞祥: 好的,谢谢你的建议。

Dhoopu | 园豆:10 (初学一级) | 2019-01-22 23:05
其他回答(1)
0

可以新加个自增的Id做主键,然后guid设为唯一键,这样能避免每次有新数据插入时的索引问题

收获园豆:5
webaspx | 园豆:1973 (小虾三级) | 2019-01-23 16:39

谢谢。

这样是可以。就是目前系统已经线上跑几年了,这样改动是有点大了

支持(0) 反对(0) Dhoopu | 园豆:10 (初学一级) | 2019-01-23 16:40

@Dhoopu: 这样的改动不大,基本对系统没啥影响

支持(0) 反对(0) webaspx | 园豆:1973 (小虾三级) | 2019-02-19 01:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册