mysql数据分库分表,迁移,表字段复制,分区(整理中)
数据迁移
一、导出
命令行下具体用法如下:
mysqldump -h host -u uname -p pwd dbname > dump.sql #导出整个数据库结构和数据
mysqldump -h host -u uname -p pwd -d dbname > dump.sql #导出整个数据库结构(不包含数据)
mysqldump -h host -u uname -p pwd dbname tbname > dump.sql #导出单个表结构和数据
mysqldump -h host -u uname -p pwd -d dbname tbname > dump.sql #导出单个表结构(不包含数据)
二、导入
mysql -u用户名 -p密码 < 要导入的数据库数据(runoob.sql)
mysql -uroot -p123456 < runoob.sql
mysql(分布式,分库分表,sql)
自动分库:比较复杂
1,分库依据:体现在库名上 2,初始化:获取一份数据库sql文件, mysqldump -h host -u uname -p pwd -d dbname > dump.sql 3,sql文件关键变量抽取 4,替换sql文件中的变量,正则匹配 5,执行sql文件
自动分表:相对简单
1,分表依据:体现在表名上 2,自动判断存在性 3,自动创建表:建表sql mysqldump -h host -u uname -p pwd -d dbname tbname > dump.sql 4,自动获取表
表复制
#复制表结构及数据到新表(不包含主键、索引、分区等) create table A_1 select * from A #只复制表结构到新表1 create table A_1 select * from A where 1=2; #只复制表结构到新表2 create table A_1 like A; #这种方式的复制可以复制旧表的主键、索引、Extra(auto_increment,字符集编码及排序)、注释、分区等属性。但是不包含触发器、外键等 #复制表数据到新表(A_1必须存在) insert into A_1 select * from A;#全部字段 insert into A_1 (col1,col2,...) select col1,col2,... from A;#指定字段 #完整复制 show create table A;#将旧表的创建命令列出 #我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表
字段复制
1 不同表复制
update B set extra = A.extra from A join B on (A.id = B.id);
update B inner join A on A.id = B.id set B.content = A.content[,A.extra = B.extra];
update B set B.sms = (select A.sms from A where A.id = B.id)
2 同表复制
update B set col1 = col2;
分区
参考:https://zhuanlan.zhihu.com/p/373202129
分类:
mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?