Mysql的事务、视图、索引、备份和恢复
事务
事务是作为单个逻辑工作单元执行的一系列操作,一个逻辑工作单元必须具备四个属性.即:原子性、一致性、隔离性、持久性,这些特性通常简称为ACID.
原子性(Atomicity)
事务是不可分割的工作逻辑单元
多个操作作为一个整体向系统提交,要么都执行,要么都不执行.
一致性(Consistency)
当事务完成时,数据处于一致状态.
隔离性(Isolation)
并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务。
持久性(Durability)
事务完成后,它对数据库的修改被永久保持。
MYSQL中支持事务的储存引擎有InnoDB 和BOB;
开始事务 BEGIN 或 START TRANSACTION; 标记一个事物的起点
提交事务 COMMIT; 该语句标识一个事务的成功提交
回滚(撤销)事务 ROLLBACK;清除自事务起始点至该语句所做的所有数据更新 的操作.
视图
视图是另一种查看数据库中一个或多个表中数据的方法.
视图是一种虚拟表
来自一个或多个表的行或列的子集创建的.(也可以是全部的行和列.)
视图充当着查询中的指定表筛选器,定义视图的查询可以基于一个或多个表,也可以基于其他视图、当前数据库或其他数据库.
好处:
对于用户:
结果更容易理解
获取数据更容易
对于开发人员:
限制数据检索更容易
维护应用程序更方便.
使用SQL语句创建视图语法:
CREATE VIEW 视图名 AS <SELECT语句>;
在SQL语句命名规范中,视图一般以view_xxx 或v_xxx的样式来命名.
使用SQL语句删除视图语法:
DROP VIEW [IF EXISTS] 视图名;
使用SQL语句查看视图数据
SELECT 字段1,字段2,字段3,......FROM 视图名.
使用视图的注意事项:
1):每个视图中可以使用多个表;
2):与查询相似,一个视图可以嵌套另一个视图,但最好不要超过三层;
3):对视图数据进行添加,更新,删除操作直接引用表中的数据;
4):当视图数据来自多个表时,不允许添加和删除数据;
索引
索引提供指针以只想储存在表中指定列的数据值,再根据指定的排序次序排列这些指针.
作用:索引的作用是通过使用索引,大大提高了数据库的检索速度,改善数据库性能.
索引的分类
1.普通索引
普通索引是MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值.
2.唯一索引
唯一索引不允许两行具有相同的索引值.
3.主键索引
在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型
主键索引要求主键的每一个值是非空,唯一的,挡在查询中使用主键索引时,它还允许快速访问数据.
4.复合索引
在创建索引时,并不是只能对其中一列创建索引,与创建主键一样,可以将多个列组合作为索引,这种被称之为复合索引.
5.全文索引
MySQL 4.5数据库中,只有MyISAM储存引擎支持全文索引.主要应用于大量文本文字中搜索字符串.
6.空间索引
空间索引是对空间数据类型的列建立的索引,必须为not null 修饰的列,空间索引只能在储存引擎为MyISAM的表中创建
创建索引语法:
CREATE [UNIQUE | FULLTEXT | SPATITL] INDEX 指定索引名
ON 指定创建索引的表名 (指定需要创建索引的列 [length]);
[UNIQUE | FULLTEXT | SPATITL] 分别表示唯一索引,全文索引,空间索引,可选参数.
Length: 指定索引长度,可选参数,只有字符串类型才能指定索引长度.
经验总结:
1):查询时减少使用*返回全部列,不要返回不需要的列;
2):索引应该尽量小,在字节数小的列上建立索引;
3):WHERE 子句中有多个条件表达式时,包含索引列的表达式应置于其他条件表达式之前;
4):避免在ORDER BY子句中使用表达式.
5):根据业务数据发生频率,定期重新生成或重新组织索引,进行碎片整理.
标准建立索引的列:
1):频繁使用的列
2):经常用作查询的列;
3):经常排序,分组的列;
4):经常用作连接的列(主键/外键);
请勿使用以下的列创建索引:
1):仅包含几个不同值的列
2):表中仅包含几行.
3):为小型表创建索引可能不太实用,在检索数据所花的时间比逐条检查花费的时间更长.
删除索引
DROP INDEX 指定索引名 ON 指定创建索引的表名
删除索引注意一下几点:
删除表时,该表的所有索引将同时被删除.
删除表中的列时,如果要删除的列为索引的组成部分,则该列也会从索引中删除,如果组成索引的所有列都被删除,则整个索引将被删除.
查看索引
语法:SHOW INDEX FROM 表名
SHOW INDEX FROM student;
显示结果:
Table 创建索引的表名
Non_unique 表示索引是否是唯一.0表示唯一索引,1表示非唯一索引
Key_name 表示索引的名称
Seq_in_index 表示该列在索引的位置,如果索引是单列的该值为1,组合索引为每列在索引定义中的顺序.
Column_name 表示定义索引的列字段
Collation
Cardinality
Sub_part 表示索引的长度
Packed
Null 表示该列是否为空值
Index_type 表示索引类型
Comment
Index_comment
数据库的备份和恢复
使用mysqldump命令备份数据库
语法:mysqldump -u 数据库用户名 -h 登录用户的主机名称,本机可省略 -p 登录密码
需要备份的数据库名 [表1,表2,......] > 备份文件的名称.
mysqldump是DOS系统下的命令,在使用时无需进入MySQL命令行,否则将无法执行.
使用MySQL恢复数据库
方法一:
mysql -u 用户名 -p [数据库名] < 数据库备份的文件.
方法二:
source 数据库备份的文件.
登录mysql服务器后使用,执行命令前,先创建并选择恢复后的目标数据库.

通过复制粘贴实现数据备份和恢复
优点,操作简单;
缺点:复制数据前必须停止服务,不适合InnoDB数据库,MySQL版本不同不兼容;
表数据导入到文本文件
SELECT * FROM 表名
INTO OUTFILE 导出的目标文件

导入数据前保证目标表的存在;
Mysql的事务、视图、索引、备份和恢复的更多相关文章
- 第五章 MySQL事务,视图,索引,备份和恢复
第五章 MySQL事务,视图,索引,备份和恢复 一.事务 1.什么是事务 事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求.要么都执行 ...
- mysql导入导出数据,备份,恢复数据
MYSQL 实现导入数据 .备份和恢复数据库 1.使用msql命令导入数据 # mysql -uroot -p 需要选择一个数据库 < runoob.sql #mysql -u username ...
- 第16周翻译:SQL Server中的事务日志管理,级别3:事务日志、备份和恢复
源自: http://www.sqlservercentral.com/articles/Stairway+Series/73779/ 作者: Tony Davis, 2011/09/07 翻译:刘琼 ...
- MySQL入门篇之mysqldump备份和恢复
一.备份单个数据库 1.备份命令:mysqldump MySQL数据库自带的一个很好用的备份命令.是逻辑备份,导出 的是SQL语句.也就是把数据从MySQL库中以逻辑的SQL语句的形式直接输出或生成备 ...
- 使用CMD命令行来对MySQL数据库执行迁移、备份、恢复
1. 导出数据库数据 "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe" -u root -p123abc ...
- 关于MySQL 事务,视图,索引,数据库备份,恢复
/*创建数据库*/ CREATE DATABASE `mybank`;/*创建表*/USE mybank;CREATE TABLE `bank`( `customerName` CHAR(1 ...
- MYSQL的事务和索引
事务 什么是事务 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行 MySQL事务处理只支持InnoDB和BDB数据表类型 事务的ACID原则 ...
- mysql概要(十三)备份和恢复
1.采用mysql 自带备份命令: 数据库恢复:
- mysql数据库 事务和索引
1.MySQL数据库特性: 原子性(atomidity) 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一 ...
- 【面试】MySQL的事务和索引
MySQL事务 MySQL事务主要用于处理操作量大,复杂度高的数据. 比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这些数据库操作 ...
随机推荐
- 吧,其实spring自带的BeanUtils就有这样的功能,引入spring-beans和spring-core之后,就有BeanUtils.copyProperties(a, b);可以实现两个javabean之间的相互拷贝,自己写的就当是研究咯---https://www.cnblogs.com/NieXiaoHui/p/7150928.html
吧,其实spring自带的BeanUtils就有这样的功能,引入spring-beans和spring-core之后,就有BeanUtils.copyProperties(a, b);可以实现两个ja ...
- 关于字符串不为空 错误:s!=null
错误:s!=null 正确:StringUtils.isNotBlank(s); public static boolean isBlank(CharSequence cs) { int strLen ...
- codeforces gym 100357 H (DP 高精度)
题目大意 有r*s张扑克牌,数字从1到 r,每种数字有s种颜色. 询问对于所有随机的d张牌,能选出c张组成顺子的概率和组成同花的概率. 解题分析 对于组成顺子的概率,令dp[i][j][k]表示一共选 ...
- QT .pro文件的学习收获
1. 载pro文件预定义宏: CONFIG(debug,debug|release){ DEFINES+=__DEBUG__ }else{ DEFINES+=__RELEASE__ macx:DEST ...
- ISO和焦距
要说什么是ISO还要从传统胶片相机说起,ISO称作为感光度,它是衡量传统相机所使用胶片感光速度的国际统一指标,其反映了胶片感光时的速度(其实是银元素与光线的光化学反应速率).而对于现在并不使用胶片的数 ...
- Solidworks如何整体缩放零件
比如我有一个飞机模型,当前长度有20000mm,即20M,我想要整体缩放 点击插入-特征-缩放比例 在左侧的框中输入所有要缩放的零部件(如果全部缩放,则全部框选所有零件,就可以把所有零件都放到 ...
- Object-C--->Swift之(十一)属性观察者
属性观察者机制能让程序在属性被赋值时获得运行代码的机会,用来监视属性的除初始化之外的属性值变化,当属性值发生改变时能够对此作出响应 详细包含两个特殊的回调方法: willSet(newValue):被 ...
- 小议:怎样解决创建Web Application失败问题?
我们都知道微软建议部署SharePoint2013环境的内存至少是12GB.可是有些小型企业在部署On Premise的环境时因为预算有限,仅仅能使用内存是8GB的环境来部署SharePoint201 ...
- Struts2框架复习(一)--最基本的struts2框架
前言 最近离职在家,发现之前学习的Struts2框架由于长时间不使用有点生疏,有鉴于此写下此文以备自己复习使用,同时也供大家批评指正. 准备工作 我觉得Struts2主要就是对Servlet的封装,还 ...
- Linux安装MATLAB
Linux下的MATLAB在2013a及以后的版本中,就不再支持32位机了.所以32位Linux系统无法安装2013a及以后版本.[1] Linux下安装MATLAB时,需要先配置好JRE,可以参考: ...