当前位置:网站首页>A table splitting implementation scheme of MySQL and InnoDB, MyISAM and MRG_ Introduction to MyISAM and other engine application scenarios
A table splitting implementation scheme of MySQL and InnoDB, MyISAM and MRG_ Introduction to MyISAM and other engine application scenarios
2022-04-23 14:14:00 【pureluckyfish】
One 、MYSQL Complete example of implementing sub table (5.7 edition )
1、 Build three identical sub tables user1、user2、user3
CREATE TABLE user1 (
id INT auto_increment NOT NULL,
name varchar(50) NULL,
sex INT DEFAULT 0 NOT NULL,
CONSTRAINT user1_pk PRIMARY KEY (id)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
CREATE TABLE user2 (
id INT auto_increment NOT NULL,
name varchar(50) NULL,
sex INT DEFAULT 0 NOT NULL,
CONSTRAINT user1_pk PRIMARY KEY (id)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
CREATE TABLE user3 (
id INT auto_increment NOT NULL,
name varchar(50) NULL,
sex INT DEFAULT 0 NOT NULL,
CONSTRAINT user1_pk PRIMARY KEY (id)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
2、 Create another main table , The table structure is the same, but engine ENGINE=MRG_MyISAM; Addition, deletion, modification and query are all operations on this table , But the real data change is in each sub table
CREATE TABLE alluser (
id INT auto_increment NOT NULL,
name varchar(50) NULL,
sex INT DEFAULT 0 NOT null,
index(id)
)
ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8
INSERT_METHOD=LAST UNION=(`user1`,`user2`,`user3`)
auto_increment=1 COMMENT=' A sub table implementation method ';
3、 verification : perform insert sentence , The query found that the data was stored in user3 in ( Why does data exist user3 Not user1 Well ? To look down )
insert into alluser(name,sex)values(' bald ',1);
select * from alluser;
delete from alluser where id=1;
select * from user1 ;
select * from user2 ;
select * from user3 ;
The article quoted :https://www.cnblogs.com/lucky-man/p/6207873.html If I have a user list user Yes 1100W Data , Now it's going to be broken into three tables user1 and user2 and user3,user1 Table storage 500w,user2 save 500w,user3 save 100w, All new user information will exist in the future user3 in . |
INSERT INTO user1(user1.id,user1.name,user1.sex)SELECT (user.id,user.name,user.sex)FROM user where user.id <= 5000000;
INSERT INTO user2(user2.id,user2.name,user2.sex)SELECT (user.id,user.name,user.sex)FROM user where user.id > 5000000 and user.id <= 10000000;
INSERT INTO user3(user3.id,user3.name,user3.sex)SELECT (user.id,user.name,user.sex)FROM user where user.id > 10000000;
In this way, I will succeed in putting one user surface , Divided into three tables , There is a problem at this time , In code sql What to do with the statement , It used to be a watch , Now it's three tables , The code has changed a lot , This brings a lot of workload to programmers , Is there a good way to solve this ? The way is to put the previous user Back up the table , Then delete , I created one of the above operations alluser surface , Just put this alluser Change the table name of the table to user That's it |
Two 、INSERT_METHOD There are three different ways
INSERT_METHOD=FIRST | Insert into the first table |
INSERT_METHOD=LAST | Insert into the last table |
INSERT_METHOD=NO Or default | Cannot perform insert operation |
3、 ... and 、MYSQL Brief description of various engines
show engines;-- Query all engines
![]() |
English description | Engine applicable scenario | Create table statement | Data storage files |
InnoDB | 5.5 After version Mysql The default database for , The preferred engine for transactional databases , Support ACID Business , Support row level locking | ENGINE=InnoDB | .frm .ibd |
MyISAM | Has a higher insert , Query speed , But does not support Business | ENGINE=MyISAM | .frm .MYD .MYI |
MRG_MYISAM | There will be a certain number of MyISAM The watch is united into a whole , It's useful for very large-scale data storage | ENGINE=MRG_MYISAM | .frm .MRG |
MEMORY | All the data is put in the memory of the storage engine , Has extremely high insertion , Update and query efficiency . But it will occupy the memory space which is proportional to the amount of data . And its content will be in Mysql Lost on reboot | ENGINE=MEMORY | .frm |
ARCHIVE | Ideal for storing large amounts of independent , Data as a historical record . Because they are not often read .Archive With efficient insertion speed , But its support for query is relatively poor | ENGINE=ARCHIVE | .frm .ARZ |
mysql Data storage path
版权声明
本文为[pureluckyfish]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231406486556.html
边栏推荐
- 星界边境Starbound创意工坊订阅的mod的存放路径
- Redis数据库讲解(一)
- ThreadGroup ThreadGroup implémente l'interface threadfactory en utilisant la classe Introduction + Custom thread Factory
- HyperBDR云容灾V3.2.1版本发布|支持更多云平台,新增监控告警功能
- GFS分布式文件系统(理论)
- Easyexcel读取excel表地理位置数据,按中文拼音排序
- openstack理论知识
- Request module
- 帆软分割求解:一段字符串,只取其中某个字符(所需要的字段)
- 连接公司跳板机取别名
猜你喜欢
随机推荐
星界边境文本自动翻译机使用说明
JSP学习2
HyperMotion云迁移助力中国联通,青云完成某央企上云项目,加速该集团核心业务系统上云进程
Three point positioning based on ibeacons (wechat applet)
Visio画拓扑图随记
FBS (fman build system) packaging
mysql 5.1升级到5.610
Essential difference between restful WebService and gSOAP webservice
按实际取,每三级分类汇总一次,看图知需求
1到100号的灯开关问题
ActiveMQ Basics
Operation instructions of star boundary automatic text translator (advanced version)
Request module
VMware15Pro在Deepin系统里面挂载真机电脑硬盘
VMware installation 64 bit XP Chinese tutorial
Wechat applet communicates with low-power Bluetooth - receives data sent by hardware (IV)
mysql锁数据库锁
使用Executors类快速创建线程池
RobotFramework 之 用例标签机制
Indoor and outdoor map switching (indoor three-point positioning based on ibeacons)