Mysql视图和分区表
视图
视图(View)是一个命名的虚表,由一个SQL查询来定义,可以当作表使用。与持久表不同的是,视图种的数据没有实际的物理存储。
作用
主要用途是被用做一个抽象装置,程序不需要关心基础表的结果,只需按照视图定义来读取数据或更新数据。带来如下好处:
-
提高重用性。例如需要经常查询某表中的部分数据。
--将查询的结果存为视图,不用每次再从基础表中进行条件查询。
-
对数据库重构,不影响程序的运行。
--对表的拆分或连接,直接用视图来标识新表的结构,不需要直接操作基础表
-
提高安全性,对不同的用户设定不同的视图。
用户可以对视图进行更新操作,本质就是通过视图的定义来更新基本表。可进行更新操作的视图称为可更新视图。
基本使用
创建
create view 视图名 as select 字段名 from 表名;
删除
drop view 视图名[,视图名…];
重命名
Rename table 视图名 to 新视图名;
查看
show tables;
show tables;会将表和视图都显示出来。
如果只显示基础表,可以通过information_sechma架构下的TABLE表来查询
select * from information_schema.tables where table_type='BASE TABLE' and table_schema=database();
同样,所有视图的信息在information_schema.VIEWS下。
select * from information_schema.views where table_schema=database();
分区表
概述
分区的过程是将一个表或索引分成多个更小、更容易管理的部分。就访问数据库的应用而言,从逻辑上看,只有一个表或者索引,但是在物理上这个表或索引可能由多个物理分区来组成。每个分区都是独立的对象,可以单出处理,也可以作为更大对象的一部分。
Mysq支持的分区类型为水平分区,不支持垂直分区。Mysql的分区时局部分区索引。
垂直分区:同一个表中的不同列记录分配到不同的物理文件中。
水平分区:同一个表中的不同行记录分配到不同的物理文件中。
全局分区:一个分区中即存放了数据又存放了索引。
局部分区:数据存放在各分区中,所有数据的所有存