mysql大数据分表后查询

随着数据量的激增,采用库表散列等方法优化数据读写速度变得至关重要。例如,面对1亿条数据,可以将其分散到100张表中,通过full_code字段的hash值确定数据存储的表。在插入前,利用get_hash_table函数确定表名。此外,使用merge存储引擎能将这些分表合并为逻辑上的单一视图,执行select * from code即可获取所有full_code数据。
摘要由CSDN通过智能技术生成

当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度,举例说明:

1亿条数据,分100张表

1.首先创建100张表

$i=0;
while($i<=99){
echo "$newNumber \r\n";
$sql="CREATE TABLE `code_".$i."` (
 `full_code` char(10) NOT NULL,
 `create_time` int(10) unsigned NOT NULL,
 PRIMARY KEY  (`full_code`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
mysql_query($sql);
$i++;

2.分表规则:

full_code作为主键,对full_code做hash

 

$table_name=get_hash_table('code',$full_code);
function get_hash_table($table,$code,$s=100){
      $hash = sprintf("%u", crc32($code));
      echo $hash;
      $hash1 = intval(fmod($hash, $s));
      return $table."_".$hash1;
}

 

这样插入数据前通过get_has

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值