您的位置:首页 > 其它

事务、视图、索引、备份、还原

2018-02-24 14:03 113 查看

事务: 是作为单个逻辑公作单元执行的一系列操作 。事务是一个不可分割的公作逻辑单元
多个操作作为一个整体向系统提交.要么都执行,要么不执行

 

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

原子性 事务是一个完整的操作,事务的各步操作是不可分的原子性
一致性
当事务完成时,数据必须处于一致状态
隔离性
并发事务之间彼此隔离 独立 它不应该以任何方式依赖于或影响其他事务
持久性
事务完成后,它对数据库的修改被永久保持
MYSQL中支持事务的储存引擎InnoDB和BDB

开始事务
BEGIN

START TRANSACTION

提交事务 : COMMIT

回滚(撤销)事务:ROLLBACK

默认情况下,每一条单独的SQL语句视为一个事务
关闭默认提交状态后,可手动开启,关闭事务

关闭/开启自动提交状态
SET autocommit=0|1;
值为0:关闭自动提交
值为1:开启自动提交
关闭自动提交后,从下一条语句开始则开启新事务,需要使用commit或者rollback语句结束该事务

事务是作为单个逻辑单元执行的一系列操作

四个属性
原子性
一致性
隔离性
持久性
操作事务
开始事务 提交事务 回滚事务

视图的主要用途

筛选表中的行
防止未经许可的用户访问敏感数据
降低操作数据库的复杂过程
将多个物理数据库抽象作为一个逻辑数据库

使用SQL语句创建视图
CREATE VIEW VIEW_name
as
<SELECT 语句>

使用SQL语句删除视图
DROP VIew [IF EXISTS] view_name
               ↓
  删除前判断视图是否存在

使用SQL语句查看视图
SELECT 字段一,字段二,....FROM VIEW_name

查看所用视图
USE INFOrMAtion_schema
SELECT * from VIEWS\G

注意事项:

视图中可以使用多张表
一个视图可以嵌套另一个视图
对视图数据进行添加,更新和删除操作将直接影响所引用表中的数据
当视图数据来自多个表时,不允许添加和删除数据

使用视图修改数据会有很多限制,一般在实际开发中视图仅用作查询

索引是一种有效组合数据的方式,为了快速的查找到指定记录

作用

大大提高数据库的检索速度
改善数据的性能
MYSQL索引按存储类型分类
B-树索引: InnoDB MyISAM均支持
哈希索引

普通索引:基本索引
 允许在定义索引的列插入重复值和空值
唯一索引:索引列数据不重复
 允许有空值
主键索引:主键列中的每一个值是非空唯一的
  一个主键将自动创建主键索引
复合索引:将多个列组合作为索引

全文索引:支持值得全文查找
 允许重复值和空值
空间索引: 对空间数据类型的列建立的索引

创建一个索引
CREATE     index 索引名
删除索引
DROP INDEX index_name on table_name
删除表时候 该表的索引同时被删除

按照下列标准选择建立索引的列
频繁搜素的列
经常用作查询的列
经常排序分组的列
经常用作连接列(主键/外键)
请不要使用下面的列创建索引
仅包含几个不同值的列
表中仅包含几行

查询时减少使用* 返回全部列,不要返回不需要的列
索引应该尽量小,在字节数小的列上建立索引
where子句有多个条件表达式,包含索引列的表达式应置于其他表达式之前
避免在orderby子句中使用表达式
SHOW INDEX from 表名

查看数据库中全部索引信息

USE MYSCHOOL
SHOW INDEX FROM `STUDENT\G`

备份和还原

 备份
 mysqldump -uroot -hlocalhost -p myschool>d:\\1.sql


 恢复
 mysql -uroot -proot myschool<d:\\1.sql

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐