merge存储引擎分表
2021-05-10 本文已影响0人
jacky_8897
from: https://www.cnblogs.com/djwhome/p/12536068.html
mysql大数据分表后查询
当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度,举例说明:
1亿条数据,分100张表
1.首先创建100张表
i<=99){
echo "sql="CREATE TABLE code_".sql);
$i++;
2.分表规则:
full_code作为主键,对full_code做hash
full_code);
function get_hash_table(code,hash = sprintf("%u", crc32(hash;
hash, table."_".$hash1;
}
这样插入数据前通过get_hash_table获取数据存放的表名。
3.使用merge存储引擎来实现一张完整的code表
CREATE TABLE IF NOT EXISTS code (
full_code char(10) NOT NULL,
create_time int(10) unsigned NOT NULL,
INDEX(full_code)
) TYPE=MERGE UNION=(code_0,code_1,code_2.......) INSERT_METHOD=LAST ;
通过select * from code就可以得到所有的full_code数据了。