事务·视图·索引·备份和恢复
发布日期:2022-02-06 00:27:01 浏览次数:50 分类:技术文章

本文共 2057 字,大约阅读时间需要 6 分钟。

事务

事务是指将一系列数据操作捆绑成为一个整体进行统一管理,如果某一事务执行成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务执行时遇到错误且必须取消或回滚,则数据将全部恢复到操作前的状态,所有数据的更改均被清除。

事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,即原子性,一致性,隔离性及持久性,这些特性通常简称为ACID。

==原子性:==事务是一个完整的操作。事务的各元素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。

==一致性:==当事务完成时,数据必须处于一致状态,也就是说,在事务开始之前,数据库中存储的数据处于一致状态,在正在进行的事务中,数据可能处于不一致的状态,如数据可能有部分被修改。然而,当事务成功完成时,数据必须再次回到已知的一致状态。通过事务对数据所做的修改不能损坏数据,或者说事务不能使数据存储处于不稳定的状态。
==隔离性:==对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应该以任何方式依赖于或影响其他事务。
==持久性:==事务的持久性指不管系统是否发生了故障,事务处理的结果都是永久的。

执行事务的语法:

1.开始事务:BEGIN; 或 START YRANSACTION;
2.提交事务: COMMIT;
3.回滚(撤销)事务:ROLLBACK;

设置自动提交关闭或开启

SET autocommit=0|1;

编写事务时要遵守以下原则

1.事务尽可能简短
2.事务中当问的数据量尽量最少
3.查询数据时尽量不要使用事务
4.在事务处理过程中尽量不要出现等待用户输入的操作

视图

视图是保存在数据库中的SELECT查询。

==使用视图的原因:==一个是出于安全考虑,用户不必看到整个数据库的结构,而隐藏部分数据;另一个是符合用户日常业务逻辑,使他们更容易理解数据。

视图通常用来进行以下三种操作

1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.将多个物理数据表抽象为一个逻辑数据表

对最终用户的好处

1.结果更容易理解
2.获得数据更容易

对开发人员的好处

1.限制数据检索更容易
2.维护应用程序更方便

使用SQL语句创建视图

CREATE VIEW 视图名
AS
<SELECT语句>;
使用SQL语句删除视图
DROP VIEW [IF EXISTS] 视图名;
使用SQL语句查看视图数据
SELECT 字段1,字段2,… FROM view _name;

使用视图的注意事项

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

索引

索引提供指针以指向存储在表中指定列的数据值,再根据指定的排序次序排列这些指针。

索引分为六类

1.普通索引:允许在定义索引的列中插入重复值和空值,它的唯一任务就是加快对数据的访问速度du
2.唯一索引:唯一索引不允许两行具有相同的索引值
3.主键索引:要求主键中的每个值是非空,唯一的
4.复合索引:在创建索引时,并不是只能对其中一列创建索引,与创建主键一样,可以将多个列组合作为索引,这种索引称为复合索引
5.全文索引:在定义索引的列值的上支持值的全文查找,允许在这些索引列中插入重复值和空值。
6.空间索引:对空间数据类型的列建立的索引,空间索引只能在存储引擎为MyISAM的表中创建。

创建索引的语法

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
ON table_name(colum_name[length]…);
删除索引的语法
DROP INDEX index_name ON table_name;
查看索引的语法
SHOW INDEX FROM table_name;

数据库的备份和恢复

为了防止数据丢失,将损失降到最低,定期对数据库进行备份是非常必要的,以便于发生意外情况后可以及时恢复数据。

使用mysqldump命令备份数据库

mysqldump -u username -h host -ppassword
dbname[tbname1[,tbname2…]]>filename.sql

使用mysql命令恢复数据库

mysql -u username -p [dbname] <filename.sql

表数据导出到文本文件的语法

SELECT columnlist FROM tablename
[WHERE contion]
INTO OUTFILE ‘filename’ [OPTION]

文本文件导入到数据表的语法

LOAD DATA INFILE filename INTO TABLE tablename [OPTION];

转载地址:https://blog.csdn.net/weixin_46175284/article/details/106411958 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:高级查询(二)
下一篇:MySql存储过程

发表评论

最新留言

很好
[***.229.124.182]2024年03月26日 22时17分19秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章