MySql引擎、函数、事件、视图、备份

MySql数据库引擎
MyISAM: 拥有较高的插入,查询速度,但不支持事务
InnoDB :5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持ACID事务,支持行级锁定
BDB: 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性
Memory :所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
Merge :将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
Federated: 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用
Cluster/NDB :高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。
BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继
另外,Mysql的存储引擎接口定义良好。有兴趣的开发者通过阅读文档编写自己的存储引擎。

MySql函数
函数存储着一系列sql语句,调用函数就是一次性执行这些语句。所以函数可以降低语句重复。
【但注意的是函数注重返回值,不注重执行过程,所以一些语句无法执行。所以函数并不是单纯的sql语句集合。】
函数与存储过程的区别:函数只会返回一个值,不允许返回一个结果集。函数强调返回值,所以函数不允许返回多个值的情况,即使是查询语句。
创建函数sql语句:
create function select5() returns VARCHAR(255) return ‘333qweqewq’;
使用函数sql语句:
select select5();

MySQL 事件EVENT
用于某一时间执行一个事件或周期性执行一个事件.

EVENT开启事件
msyql默认关闭了event
Windows系统下,需要找到mysql.ini文件,注释掉 #skip-grant-tables
show global variables like ‘%event%’;
显示:
event_scheduler OFF
开启:
set global event_scheduler=ON(或1);
关闭:
set global event_scheduler=OFF(或0);

创建事件:每秒向test2表插入一条数据
DELIMITER //
CREATE EVENT test2_insert3 ON SCHEDULE EVERY 1 SECOND
DO
BEGIN
insert test2(uid,now) values(2,NOW());
END;
//

MySql视图:
Q:什么是视图?视图是干什么用的?
A: 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。通过视图,可以展现基表的部分数据;视图数据来自定义视图的查询中使用的表,使用视图动态生成。
基表:用来创建视图的表叫做基表base table
Q:为什么要使用视图?
A:因为视图的诸多优点,如下
  1)简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。
  2)安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。
  3)数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。
总而言之,使用视图的大部分情况是为了保障数据安全性,提高查询效率。

创建视图sql语句:
create view my_view(账号,时间)
as
select uid,now from test2
with check option; //这一句可用可不用,作为约束条件

使用视图sql语句:
select * from my_view

MySql备份:
数据的备份类型根据其自身的特性主要分为以下几组
1.完全备份
2.部分备份
完全备份指的是备份整个数据集( 即整个数据库 )、部分备份指的是备份部分数据集(例如: 只备份一个表)
而部分备份又分为以下两种
1.增量备份
增量备份指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特点: 节约空间、还原麻烦
2.差异备份
差异备份指的是备份自上一次完全备份以来变化的数据 特点: 浪费空间、还原比增量备份简单

在MySQl中我们备份数据一般有几种方式
1.热备份
热备份指的是当数据库进行备份时, 数据库的读写操作均不是受影响
2.温备份
温备份指的是当数据库进行备份时, 数据库的读操作可以执行, 但是不能执行写操作
3.冷备份
冷备份指的是当数据库进行备份时, 数据库不能进行读写操作, 即数据库要下线
MySQL中进行不同方式的备份还要考虑存储引擎是否支持
MyISAM 热备 × 温备 √ 冷备 √
InnoDB 热备 √ 温备 √ 冷备 √

我们在考虑完数据在备份时, 数据库的运行状态之后还需要考虑对于MySQL数据库中数据的备份方式
1.物理备份
一般物理数据库数据文件都在 MySQL\data 目录 例如:F:\phpStudy\MySQL\data
物理备份一般就是通过tar,cp等命令直接打包复制数据库的数据文件达到备份的效果
2.逻辑备份
逻辑备份一般就是通过特定工具从数据库中导出数据并另存备份(逻辑备份会丢失数据精度)

你可能感兴趣的:(MySql引擎、函数、事件、视图、备份)