事务,视图,索引,备份与恢复

事务

什么是事务?
事务就是将一系列数据操作捆绑成为一个整体进行统一管理,如果某一事务执行成功,则该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分,如果事务执行时遇到错误且必须取消或回滚,则该数据将全部恢复到操作前的状态,所有数据的更改均被删除。
事务是一种机制,包含了一组数据库操作命令。
事务的四个属性:
原子性:事务是一个完整的操作。事务的各元素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚,如果事务中的任何元素失败,则整个事务将失败。
一致性:当事务完成时,数据必须处于一致状态。 也就是说,在事务开始之前,数据库中存储的数据处于致状态。在正在进行的事务中,数据可能处于不一致的状态,如数据可能有部分被修改。然而当事务成功完成时,数据必须再次回到已知的一 致状态。 通过事务对数据所做的修改不能损坏数据,或者说事务不能使数据存储处于不稳定的状态。
隔离性:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。修改数据的事务可以在另个使用相同数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数据。另外,当事务修改数据时,如果任何其他进程正在同时使用相同的数据,则直到该事务成功提交之后,对数据的修改才能生效。
持久性:事务的持久性指不管系统是否发生了故障,事务处理的结果都是永久的。一个事务 成功完成之后,它对于数据库的改变是永久性的,即使系统出现故障也是如此。也就是说,一旦事务被提交,事务的效果会被永久地保留在数据库中。

执行事务的语法
BEGIN;或START TRANSACTION;
提交事务
commit;
回滚事务
rollback;
设置自动提交关闭或开启:
set autocommit=0/1;

视图

视图是另一种查看数据库中一个或多个表中数据的方法。视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。当然,它也可以包含全部的行和列。但是,视图并不是数据库中存储的数据值的集合,它的行和列来自查询中引用的表。在执行时,它直接显示来自于表中的数据。
视图充当着查询中的指定表筛选器。定义视图的查询可以基于一个或多个表,也可以基于其他视图、当前数据库或其他数据库。
对最终用户好处:
结果更容易理解,获得数据更容易。
对开发人员的好处:
限制数据检索更容易,维护应用程序更方便。
使用SQL语句创建视图
CREATE VIEW 视图名
AS
<SELECT 语句>;
使用SQL语句删除视图
DROP VIEW [IF EXISTS] 视图名;
使用SQL语句查看视图数据
SELECT 字段1,字段2,… from view_name;
使用视图注意事项

  • 每个视图中可以使用多个表
  • 与查询相似,一个视图可以嵌套另一个视图,但最好不要超过三层
  • 对视图数据进行添加,更新和删除操作直接引用表种的数据
  • 当视图数据来自多个表时,不允许添加和删除数据

索引

通过MySQL可以快速有效地查找与键值相关联的字段,根据索引的存储类型,可以将索引分为B树索引(BTREE)和哈希索引(HASH)。InnoDB和MISAM存储引擎支持B-树索引。
索引的作用是通过使用索引,大大提高数据库的检索速度,改善数据库性能。
普通索引:
普通索引是MySQL中基本的索引类型,允许在定义索引的列中插入重复值和空值。
唯一索引:
唯一索引不允许两行具有相同的索引值。
全文索引
全文索引(FULLTEXT)仅可以适用于MyISAM引擎的数据表;作用于CHAR、VARCHAR、TEXT数据类型的列。
组合索引:
将几个列作为一条索引进行检索,使用最左匹配原则。
主键索引:
在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型
空间索引:
空间索引是对空间数据类型的列建立的索引,如GEOMETRY,POINT等。

数据库的备份和恢复

使用mysqldump命令备份数据库
mysqldump -u username -h host -ppassword
dbname[tbname1,[tbname2…]]>filename.sql

使用mysql命令恢复数据库
mysql -u username -p [dbname]<filename.sql
使用source命令恢复数据库
source filename;
表数据的导出
select …into outfile
表数据的导入
load data infile…into

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值