一、储存引擎
基本介绍:
1、MySQL的表类型由储存引擎(Storage Engines)决定,主要包括MyISAM、innoDB、Memory等。
2、MySQL数据表主要支持六种类型,分别是:CSV、Memory、ARCHIVE、MRG_MYISAN、MYISAM、InnoBDB。
3、这六种又分为两类,一类是“事务安全型”,比如:InnoDB;其余属于第二类,称为“非事务安全型”
指令:
查看所有的储存结构:
SHOW ENGINES
主要的存储引擎/表类型特点:
小结:
1、MyISAM不支持事务,也不支持外键,但其访问速度快,对事务完整性没有要求
2、InnoDB储存引擎提供具有提交、回滚、崩溃恢复能力的事务安全。但比起MyISAM储存引擎,InnoDB写的效率差一些并且会占用更多的磁盘空间以保留数据和索引
3、MEMORY储存引擎使用存在内存中的内容来创建表,每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问速度非常快,因为数据是放在内存中的,没有I/O操作,而且默认是使用HASH索引。但是一旦服务关闭[ net stop mysql ],表中的数据就会丢失,表的结构还在。通常这用来储存用户 在线/离线 这种经常变化的数据
操作:
创建MyISAM类型的表:
create table t(id int,'name' varchar(32)) engine myisam
修改储存引擎:
alter table 表名 engine = 储存引擎名称
二、视图
基本概念:
1、视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图能包含列,其数据来自于对应的真实表(基表)
2、视图和基表关系的示意图
基本使用:
1.创建视图
create view 视图名 as <select语句>2.修改视图
alter view 视图名 as <select语句>3.查看创建视图的指令
show create view 视图名4.删除视图
drop view 视图1,视图2查看结构:
desc t_view在视图中创建新的视图create view 视图中视图名 as select no,name from 视图名
视图中的数据变化可以影响基表,基表的数据变化也会影响视图
在视图中创建新的视图,也是指向基表
视图最佳实践
-
安全
一些数据表有着重要的信息。有些字段是保密的,不能让用户直接看到。这时就可以创建一个视图,在这张视图中只保留一部分字段。这样,用户就可以查询自己需要的字段,不能查看保密的字段。 -
性能
关系数据库的数据常常会分表存储,使用外键建立这些表之间关系。这时,数据库查询通常会用到连接(JOIN)。这样做不但麻烦,效率相对也比较低。如果建立一个视图,将相关的表和字段组合在一起,就可以避免使用 JOIN 查询数据(通过视图预先封装多表JOIN操作)。 -
灵活
如果系统中有一张旧的表,这张表由于设计的问题,即将被废弃。然而,很多应用都是基于这张表,不易修改。这时就可以建立一张视图,视图中的数据直接映射到新建的表。这样,就可以少做很多改动,也达到了升级数据表的目的。