1、存储引擎:数据库对同样的数据,有着不同的存储方式和管理方式
例如:一部电影在硬盘上有MP4,wmv,rmvb,flv等存储格式,所占空间与清晰度各不一样。
表里的数据也是如此,存储方法有多种;对于用户来说,同一张表的数据,无论用什么引擎来存储,用户看到的数据是一样的;对于服务器来说,是由区别的。
常用引擎:myisam,innodb,bdb,memory,archive等
myisam,批量插入速度快,不支持事务安全,锁表,全文索引
innodb,批量插入相对较慢,支持事务安全,锁行,全文索引
create table t(...)engine myisam chaset utf8;
2、事物:
通俗来讲,指一组操作要么成功执行,要么都不执行----->原子性
在所有操作没有执行完成之前,其他会话不能够看到中间的过程------>隔离性
事务发生前和发生之后,数据总额依然匹配------->一致性
事务产生的影响不能撤销------>持久性
如果出错,事务也不能撤销,只能通过“补偿事务”
开启事务:start transaction;
sql语句…
sql语句…
…
sql语句…
commit提交、rollback回滚
当一个事务执行commit或rollback时,事务就已经结束了
注意:一些语句会造成事务的饮食提交,比如:start transaction;
事务的基本原理:作用到事务日志文件,commit时才会真正作用到表数据文件
3、备份与恢复:
系统运行中,增量备份、整体备份
例:每周日整体备份一次,周一到周六备份当天;若周五出现问题,可以用周日的整体备份+周一、二、三、四来恢复
备份工具:第三方收费的、系统自带的(mysqldump)
mysqldump可以导出:
表:
- mysqldump -u用户名 -p密码 库名 表1 表2 …> 地址/备份文件名称 导出的是建表语句及insert语句
- 导出一个库下的所有表:mysqldump -u用户名 -p密码 库名 > 地址/备份文件名称
库:以库为单位导出
- mysqldump -u用户名 -p密码 -B 库1 库2 > 地址/备份文件名称 eps:
mysqldump -uroot -p111111 -B mugua php > D:\\mandphp.sql \\导出muguahe和php
- eps:
mysqldump -uroot -p111111 -A > D:\\mandphp.sql
//导出所有库
恢复:
source D:\\mandphp.sql;
1:登录到mysql命令行
如果以库为单位导出的sql文件:mysql > source 备份文件地址
对于表级的备份文件:mysql > use 库名,mysql > source 备份文件地址
2:不登录到mysql命令行
针对库级的:mysql -uroot -p111111 < 备份文件地址
针对表级的:mysql -uroot -p111111 库名 < 备份文件地址