规则Mysql分表策略之Id规则(mysql分表id)
Mysql数据库的分表,以及拆分的策略是许多网站架构设计的重要内容。它既能提高数据库的存储性能,也能有效的维护数据的完整性,稳定性。此外,
数据操作的并发性也能在一定程度上得到提高。分表有多种策略可供选择,例如:分库分表策略,ID分表策略,时间分表策略,hash分表策略等等。
ID分表策略利用表中特定字段,例如主键id,身份证号等等,进行规则性拆表,将表中记录按ID来分表管理。
例如,一个用户注册表userinfo中包含三个字段 id,username,password,以id来作为拆表的key,那么就可以用以下的SQL语句,实现一张超大的表的拆分成多个表的操作:
create table userinfo_1 (id int primary key, username varchar(50),password varchar(50))
create table userinfo_2 (id int primary key, username varchar(50),password varchar(50))....
通过不同的id取余方式,建立分表的规则,可以将一个大表化散为多个表的拆分。例如,将id取余保存到不同的表中:INSERT INTO userinfo_$(id/1000) values (id, username,password);
Id规则的拆分方式:把ID求模1000,余数就是一个0-999的值,根据余数,将它放入该求模结果所属表中。这样子,可以将id按照规则拆分为不同的表中,以提高数据库的存储性能,减少查询时的数据量,提升服务质量和性能。
就ID规则的拆分而言,使用ID规则拆分时,关键在于拆分的规律性,即ID必须满足唯一性,规律性连续不断。另外,由于采用了规则性拆分,如果要进行修改,那么也需要分表进行修改,即修改其中一个分表也会影响到另外一个分表,不方便管理,需要很严格的规律才能进行,否则会出现很多问题。
总而言之,使用ID规则分表策略可以有效的减轻数据库的存储压力,从而提高数据的性能和响应的速度,但是拆分的规则也要求很严格,而且如果修改数据就会牵一发而动全身,需要慎重对待,才能发挥出最大的作用。