标签:
一、Mysql分表的原因
1、当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。
这里只讨论最简单的分表规则取模
user进行水平的切分,产生两个表结构完全一样的user_1,user_2等表,user_1 + user_2 + …的数据刚好是一份完整的数据。
#!/bin/sh # dev | idc dbenv=dev if [ "${dbenv}" = "dev" ]; then mysql_user=root mysql_pass=root mysql_host= fi if [ "${dbenv}" = "idc" ]; then mysql_user=root mysql_pass=root mysql_host="-h 10.10.10.10" fi mysql_cmd="mysql -u${mysql_user} -p${mysql_pass} ${mysql_host} --default-character-set=utf8" for i in {1..100} do ${mysql_cmd} <<EOF use md_mydatabasel; create table t_user_$i ( f_uin bigint(20) NOT NULL DEFAULT ‘0‘, f_name varchar(256) NOT NULL DEFAULT ‘‘, PRIMARY KEY (f_uin) )ENGINE=InnoDB DEFAULT CHARSET=utf8; EOF done
#!/bin/sh # dev | idc dbenv=dev if [ "${dbenv}" = "dev" ]; then mysql_user=root mysql_pass=root mysql_host= fi if [ "${dbenv}" = "idc" ]; then mysql_user=midea mysql_pass=MD_midea mysql_host="-h 10.10.10.10" fi mysql_cmd="mysql -u${mysql_user} -p${mysql_pass} ${mysql_host} --default-character-set=utf8" for i in {1..100} do ${mysql_cmd} <<EOF use md_mydatabasel; drop table t_user_$i; EOF done
CREATE TABLE t_global_number ( f_global_id bigint(20) NOT NULL, PRIMARY KEY (f_global_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
标签:
原文地址:http://www.cnblogs.com/ztteng/p/4429794.html