当前位置:网站首页>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
边栏推荐
猜你喜欢

Installation and use of postman pit

在MAC上安装mysql

使用Executors类快速创建线程池

使用DialogFragment的一些感受及防踩坑经验(getActivity、getDialog为空,cancelable无效等)

Some experience of using dialogfragment and anti stepping pit experience (getactivity and getdialog are empty, cancelable is invalid, etc.)

RecyclerView细节研究-RecyclerView点击错位问题的探讨与修复

RobotFramework 之 文件上传和下载

01-NIO基础之ByteBuffer和FileChannel

Recyclerview advanced use (I) - simple implementation of sideslip deletion

某政务云项目业务系统迁移调研实践
随机推荐
ThreadGroup ThreadGroup implémente l'interface threadfactory en utilisant la classe Introduction + Custom thread Factory
云容灾是什么意思?云容灾和传统容灾的区别?
MySQL数据库讲解(十)
线程间控制之Semaphore使用介绍
ActiveMQ Basics
Indoor and outdoor map switching (indoor three-point positioning based on ibeacons)
更改plsql工具栏的图标大小
如何轻松做好一个项目
jsp学习1
Detailed tutorial on the use of setinterval timing function of wechat applet
Recyclerview advanced use (I) - simple implementation of sideslip deletion
gzip和gunzip 解压参数详解
星界边境Starbound创意工坊订阅的mod的存放路径
logback-logger和root
Promtail + Loki + Grafana 日志监控系统搭建
JSP学习2
elk安装
数据库DbVisualizer Pro报文件错误,导致数据连接失败
MySQL数据库讲解(九)
Recyclerview advanced use (II) - simple implementation of vertical drag and drop sorting
