Mysql事务,索引及数据库的备份和恢复

事务处理

事务就是将一组sql语句放在同一批次去执行,
如果sql语句出错,则该批次内的所有sql都将被取消执行.
注 : 只支持InnoDB和BDB数据表类型

事务的ACID原则 :
原子性、一致性、隔离性、持久性

事务处理流程:

  1. 使用set语句来改变自动提交模式
    set autocommit=0;
  2. 开始一个事务(标记事务的起始点)
    start transaction;
  3. 提交一个事务给数据库,或将事务回滚,所有commit中的操作将被取消
    commit; || rollback;
  4. 还原数据库的自动提交
    set autocommit=1;
//例:转账
CREATE TABLE account(
      id INT(11) AUTO_INCREMENT PRIMARY KEY,
      NAME VARCHAR(32),
      cash DECIMAL (9,2));

INSERT INTO account(NAME,cash) VALUES('A',2000),('B',10000);

SET autocommit=0;
START TRANSACTION;
UPDATE account SET cash=cash-500 WHERE NAME='A';
UPDATE account SET cash=cash+500 WHERE NAME='B';
COMMIT;
SET autocommit=1;

数据库索引

索引的作用:作用 : 1.提高查询速度 2. 确保数据唯一性 3.加速表与表之间的连接 4.显著减少分组和排序的时间 5.全文检索字段进行搜索优化
简而言之,即提高查询操作效率
索引分类:

  • 主键索引 (primary key) 最常见的索引, 唯一,确保数据唯一性
  • 唯一索引(unique) 作用 : 避免同一个表中数据列中的值重复 , 与主键索引的区别: 唯一索引可有多个 可以有null值 , 主键索引只能有一个 , 不能有null值
  • 常规索引(index/key) 作用 : 快速定位数据 , 应加在查找条件的字段 , 不宜添加太多常规索引,影响数据插入,删除 ,修改
  • 全文索引(fulltext) 只能用于MyISAM类型的数据表 , 只能用于char varchar text类型的数据类型 适合大数据量

创建索引

#内部添加索引
CREATE TABLE test(
   sid INT(11),
   sub_no INT(11),
   name varchar(20), 
   PRIMARY KEY(sid,sub_no)  #联合主键
);
#外部添加索引
ALTER TABLE test ADD UNIQUE KEY(sid,sub_no);
ALTER TABLE test ADD UNIQUE KEY(sid);
ALTER TABLE `student` ADD INDEX KEY(name);

查找索引
show keys from 表;

删除索引

drop index 索引名 on 表名;
//或者
alter table 表名 drop index 索引名;

索引准则:
在这里插入图片描述
分析sql语句的执行性能(查看是否触发索引)
explain/desc select语句
注: \G结尾竖排显示

Mysql的备份

数据库备份的必要性 :
1.保证重要数据不丢失
2.数据转移
方法:
1.mysqldump备份工具
2.数据库管理工具
3.直接拷贝数据库文件和相关配置文件
作用:
1.转储数据库
2.搜集数据库进行备份
3.将数据转移到另一个SQL服务器(不一定是MySQL服务器)

备份格式如下: 注:mysqldump与mysql同级别,因此在使用时应退出mysql服务

mysqldump -h 主机名 –u 用户名 –p 数据库名 [table1 table2 table3] > path/filename.sql

mysqldump常用选项:
在这里插入图片描述
在这里插入图片描述

数据库恢复

在这里插入图片描述
方法二 :
新建接收库,输入一下代码将数据恢复到新建库
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值