在SQLServer上使用存储过程进行简单分表的方法
在SQLServer上使用存储过程进行简单分表的方法
当数据量巨大的时候,通过分表策略可以让数据量级降下来,从而提高数据库的性能。
这里介绍一种简单的分表方法:
- 用存储过程进行分表路由
- 用MD5的最后一位进行分表,分成16个表
取到分表路由的Key:
declare @ch char(1); -- MD5最后一位,0-F,大写的 declare @s varchar(64); -- MD5的值 select @s=sys.fn_sqlvarbasetostr(HashBytes('MD5',@p_userkey)) select @ch = substring(@p_userkey, LEN(@p_userkey), 1); -- 取最后一位
进行表路由,并返回查询结果:
declare @sql varchar(2048); select @sql = 'select userdata from userad_'+@ch; exec(@sql);
同理,插入与更新也一样。
记得,需要提前创建好userad_0, userad_1, ..., usead_F。
相关推荐
zhaojp0 2020-06-27
crowds 2020-05-06
oArvin 2020-01-03
hungzz 2020-06-16
Omega 2020-08-16
zjyzz 2020-08-16
minggehenhao 2020-07-28
zjuwangleicn 2020-06-25
wenjieyatou 2020-06-17
liaomingwu 2020-06-16
muzirigel 2020-06-14
gsmfan 2020-06-14
ncomoon 2020-06-14
xiaobaif 2020-06-13
Rain 2020-06-12
hanshangzhi 2020-06-12
talkingDB 2020-06-12
IBMRational 2020-06-09