Mysql事务、视图、索引、备份和恢复

事务的特性:

事务必须具备以下四个属性,简称ACID 属性

原子性(Atomicity)

事务的各步操作是不可分的(原子的),要么都执行,要么都不执行

一致性(Consistency):当事务完成时,数据必须处于一致状态

隔离性(Isolation):并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务

持久性(Durability):事务完成后,它对数据库的修改被永久保持

MySQL事务处理

MySQL中支持事务的存储引擎有InnoDB和BDB。

方法1:用 BEGIN, COMMIT,ROLLBACK来实现。

语法:

BEGIN ;   #开始事务,显式地标记一个事务的起始点
COMMIT ; #提交事务,标志一个事务成功提交。
ROLLBACK; #回滚事务,清除自事务起始点至该语句所做的所有数据更新,将数据状态回滚到事务开始前,并释放由事务控制的资源。

方法2:直接用 SET 来改变 MySQL 的自动提交模式。

语法:

默认情况下,每条单独的SQL语句视为一个事务
关闭默认提交状态后,可手动开启、关闭事务
 SET autocommit = 0|1;
值为0:关闭自动提交
值为1:开启自动提交

什么是视图

视图是一张虚拟表,表示一张表的部分数据或多张表的综合数据。

其结构和数据是建立在对表的查询基础上

视图中不存放数据,数据存放在视图所引用的原始表中

一个原始表,根据不同用户的不同需求,可以创建不同的视图

视图的用途

筛选表中的行

防止未经许可的用户访问敏感数据

将多个物理数据库表抽象为一个逻辑数据库表

管理视图

使用SQL语句创建视图

语法:

CREATE VIEW view_name  
AS
<SELECT 语句>;

使用SQL语句查看视图

语法:

SELECT 字段1, 字段2, …… FROM view_name;

使用SQL语句删除视图

语法:

DROP VIEW [IF EXISTS] view_name;

使用视图的注意事项

视图中可以使用多个表

一个视图可以嵌套另一个视图

对视图数据进行添加、更新和删除操作直接影响所引用表中的数据

当视图数据来自多个表时,不允许添加和删除数据

什么是索引

汉语字典中的汉字按页存放,一般都有汉语拼音目录(索引)、偏旁部首目录等。

我们可以根据拼音或偏旁部首,快速查找某个字词。

常见索引类型

普通索引:基本索引类型 允许在定义索引的列中插入重复值和空值

唯一索引:索引列数据不重复 允许有空值,创建唯一约束时自动创建唯一索引

主键索引:主键列中的每个值是非空、唯一的 一个主键将自动创建主键索引

复合索引:将多个列组合作为索引

全文索引:支持值的全文查找 允许重复值和空值

空间索引:对空间数据类型的列建立的索引

管理索引

使用SQL语句创建索引

语法:

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
ON table_name (column_name[length]…);

使用SQL语句删除视图

语法:

DROP  INDEX index_name ON table_name;

示例:

#student表的studentName列创建普通索引
CREATE  INDEX `index_student_studentname`  ON `student`(`studentname`);

优化SQL语句的意识

查询时减少使用*返回全部列,不要返回不需要的列;

索引应该尽量小,在字节数小的列上建立索引;

WHERE子句中有多个条件表达式时,包含索引列的表达式应置于其他条件表达式之前;

避免在ORDER BY子句中使用表达式。

根据业务数据发生频率,定期重新生成或重新组织索引,进行碎片整理。


MySQL的备份

数据库备份必要性

保证重要数据不丢失

数据转移

MySQL数据库备份方法

数据库管理工具,如SQLyog

mysqldump备份工具

直接拷贝数据库文件和相关配置文件

MySQL的恢复

MySQL数据库恢复方法

数据库管理工具,如SQLyog

mysql命令

语法:

mysql –u root –p  dbname  <  /path/db_name.sql;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值