centos7-mysql-分表
admin
2023-05-26 09:41:47
0

 数据库越来越大,单个表中数据过多,查询读写,还有锁机制,会导致严重的数据库性能影响.
表锁,行锁,都是为了保证数据的完整性,
分表
分表是把一个大表,分成若干个独立储存空间的表,每个表都对应MYD数据文件,MYI索引文件,FRM表结构文件,这些表可以分布在一个存储设备,也可以分在不同存储设备.
相当于一个表变为多个表,如果这时候有APP已经在使用中,而且会对原表进行操作等等,需要开发修改代码,因为原来的一个表已经分成好几个,按照原来的表肯定是搜索不到的.
将单表拆分,再根据一定算法,就可以将数据分散到多个表中,对数据量大的数据库,会有明显的提升,
减少数据库负担,缩短查询时间,这是分表的主要目的
mysql分表-分为垂直切分,和水平切分.
垂直切分是按照列切分,水平就是行切分(需求不同自行挑选)
垂直切分
一般垂直切分都是把经常查询的列单独分到一张表中,方便查询
水平拆分
表的数据非常庞大,可以分成多个表,提高查询效率
--------------------------------------------------------------------------------------------------------
分表的几种方式
1-mysql集群
这个不是分表但是也是相同的作用,任务分担到多台mysql数据库
2-预先估计表的访问量,提前分为若干表,以防万一
根据一定算法,将数据分散到不同表中.
3-利用merge存储引擎来分表
 merge只能用在myisam上进行分表.
merge分为主表跟子表,主表中是子表的位置,如果使用myisam来分表的话APP可以不需要修改连接数据的信息,还是可以直接从主表中查询.
做一个merge的实例
create database gao;
use gao;
create table gao(
id bigint auto_increment primary key,
name varchar(20), 
sex tinyint not null default '0') 
engine=myisam default charset=utf8 auto_increment=1;
批量加入数据
insert into gao(name,sex) values('gao',1);
insert into gao(name,sex)select name,sex from gao;  将查询到的数据插入,所以,数据都一样只是测验用
开始进行分表,首先创建两个子表
use gao;
drop table if exists gao_1;
create table gao_1(
id bingint primary key,
name varchar(20)
sex tinyint not null default '0')
engine=myisam default charset=utf8;
因为第二个表跟上面的一模一样除了名字
create table gao_2 like gao_1;
创建主表
drop table if exists mastergao;
create table mastergao(
id bigint primary key  auto_increment ,
name varchar(20),
sex tinyint not null default '0')
engine=mergeunion=(gao_1,gao_2) insert_method=last charset=utf8 auto_increment=1;
insert_method = last 表示茶如道最后一张表  first 表示插入到第一张表
数据导入到两个子表当中.
insert into gao_1(id,name,sex) select id,name,sex  from gao where id%2=1;
insert into gao_2(id,name,sex) select id,name,sex from gao where id%2=0;
id%2后的值单双导入到两个表中
这时候查询两个表跟主表,数据都有了就可以删除原来的gao将mastergao更改为gao即可.
alter table mastergao rename gao;完成
--------------------------------------------------------------------------------------------------------------

相关内容

热门资讯

印度缺油,快受不了了 文字 | 无刺王冠龙 制图 | 果 校对 | 朝乾 编辑 | 果最近,印度人的日子一天比一天难熬了:...
用柠檬酸清洗热水器应该配多少浓... 使用柠檬酸清洗热水器的水垢,在配对比例上应当是1:20需要注意的是具体情况还需要根据水垢的严重度来进...
告诉一下金帝集成灶最新款适合开... 最佳回答 你说的蒸箱款呢?还是蒸烤一体机?我觉得金帝集成灶的设计都非常好看,跟橱柜搭配非常和谐,吸烟...
侧吸油烟机漏油怎么回事 侧吸油烟机漏油怎么回事1、有时候在安装的时候没有调整好角度,仰角不够,或者是清洗时间过长导致油箱的堵...
侧吸油烟机漏油了怎么办 侧吸油烟机是厨房中必不可少的家电之一,可以有效地吸收油烟,保持厨房清洁和舒适。然而,如果侧吸油烟机出...
方太吸油烟机声音大 可能是里面的油烟太多了,需要进行清洗。或者是油烟机要坏掉了,需要专业人员进行维修。如果油烟机不能安装...
男子男扮女装、衣着暴露在学校周... 近日,海南省文昌市互联网信息办公室在日常巡查中发现,某短视频平台网络主播杨某某多次以男扮女装、衣着暴...
伊朗最高领袖:战争让官员肩负更... 据英国天空新闻报道,伊朗现任最高领袖穆杰塔巴·哈梅内伊近日发表书面声明,在纪念已故前总统莱希逝世两周...
雨夜坠河的皮卡,满车都是亲戚 作者 | 黄泽敏 实习生 | 黄思婷 编辑 | 向现肖逸(化名)没有等来奇迹。5月18日,肖逸告诉南...
赖清德抛0到18岁月发5000... 海峡导报综合报道 台湾地区领导人赖清德20日发表两周年就职演说,宣称台当局近日将提出所谓台湾人口对策...