您的位置:首页 > 数据库 > MySQL

⑩MySQL(视图算法、数据表备份-存储引擎对比、单表备份-还原、SQL还原、增量备份)

2020-03-06 16:56 1286 查看

mysql.exe -h localhost -P 3306 -u root -p

use mydb; —— 进入数据库

查看:show index from 表名\G

desc:查看表结构

select * from 表名:查询所有数据

视图算法:系统对视图以及外部查询视图的select语句的一种解析方式
一、视图算法分三种
1)undefined:未定义(默认的)

2)temptable:临时表算法

3)merge:合并算法

– 获取所有班级中最高的一个学生

create view my_v5 as

– temptable:临时表算法

select * from my_student order by height desc;

select * from my_v5 group by c_id;

– merge:合并算法

select * from my_student group by c_id order by height desc;

二、算法指定:在创建视图的时候create algorithm=指定算法 view 视图名字 as select语句;
算法指定:
– 在创建视图的时候create algorithm=指定算法 view 视图名字 as select语句;

– 指定算法为临时表算法

create algorithm=temptable view my_v6 as select * from my_student order by height desc;

select * from my_v6 group by c_id;

数据备份与还原
1、方式:
1)数据表备份(不推荐、有限制)-存储引擎对比

2)单表数据备份

3)SQL备份

4)增量备份

– 查看当前MySQL版本

select @@version;

1)数据表备份-存储引擎对比
存储引擎:innodb、myisam
innodb:只有表结构,数据全部存储到 ibdata1 文件中(InnoDB:免费)

myisam:表、数据和索引全部单独分开存储

– 创建myisam表

create table my_myisam(

id int

)charset utf8 engine=myisam;

– 向my_myisam表插入几条记录

insert into my_myisam values(1),(2),(3);

create database test charset utf8;

2)单表数据备份-删除-还原
1.备份:select */字段列表 into outfile 文件所在路径 from 数据源;

– 单表数据备份(路径必须存在但文件名不能存在,路径复制过来换成"/")

select * into outfile ‘D:/1908/Q2/web/student.txt’ from my_student;

select * into outfile ‘D:/1908/Q2/web/class.txt’ from my_class;

2.高级备份:select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理 from 数据源;

1>fields:字段处理,enclosed by  —  字段使用什么内容包裹(默认'')、terminated by  —  字段以什么结束(默认'\t')、escaped by  —   特殊符号用什么处理(默认'\\')

2>lines:行处理,starting by(默认'')、terminated by(默认'\r\n')

– 指定备份处理方式

select * into outfile ‘D:/1908/Q2/web/class1.txt’

– 字段处理

fields

enclosed by ‘"’ – 数据使用双引号包裹

terminated by ‘|’-- 使用竖线分隔字段数据

– 行处理

lines

starting by ‘START:’

from my_class;

3.单表删除

– 不小心删除班级表的数据

delete from my_class;

select * from my_class;

4.单表还原

数据还原:

load data infile 文件所在路径

into table 表名[(字段列表)]

fields 字段处理

lines 行处理;

– 还原数据

load data infile ‘D:/1908/Q2/web/class1.txt’

into table my_class

– 字段处理

fields

enclosed by ‘"’ – 数据使用双引号包裹

terminated by ‘|’-- 使用竖线分隔字段数据

– 行处理

lines

starting by ‘START:’;

select * from my_class;

3)SQL备份(备份>,还原<,会先把原来的"干掉")
备份:mysqldump.exe

mysqldump/mysqldump.exe -hPup 数据库名字 [数据表名字1 [数据表名字2…]] > 外部文件路径

整库备份:

mysqldump/mysqldump.exe -hPup 数据库名字 > 外部文件路径

–必须先退出才能执行

\q – 退出

– SQL备份(不能换行,必须一行写完,运行的时候不能复制注释行)

mysqldump -uroot -p2361559775 mydb my_student > D:/1908/Q2/web/student.sql

– 整库备份

mysqldump -uroot -p2361559775 mydb > D:/1908/Q2/web/mydb.sql

– 再删除

drop table my_student;

show tables;-- 查询所有的表

–再次退出执行

\q – 退出

SQL还原数据
方案一:使用mysql.exe客户端还原

mysql.exe/mysql -hPup 数据库名字 < 备份文件目录

– 方法一:还原数据:mysql客户端还原

mysql -uroot -p2361559775 mydb my_student < D:/1908/Q2/web/student.sql

select * from my_student; – 查看

– 再删除删除

drop table my_student;

方案二:使用SQL指令还原

source 备份文件所在路径

– 方法二:SQL指令还原SQL备份(可以备份结构)

source D:/1908/Q2/web/student.sql;

select * from my_student;-- 查看

4)增量备份
备份的是系统日志文件(删除或修改都可以还原)

  • 点赞
  • 收藏
  • 分享
  • 文章举报
拘留所暴雨 发布了2 篇原创文章 · 获赞 0 · 访问量 30 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: