mysql优化学习——03(分表技术,范式,视图)

分表技术
水平分表

水平分表,如一张表有很多条目(10万+),则可将其按容量1万进行划分出多个表,当要查询某个条目时,通过对主键id取模,确定数据在哪个表,然后查询

垂直分表(比较常用)

将一张表的全部字段分别存储到不同的表里边。在进行正常数据表操作的时候,不常用的字段也会占据一定的资源,可以把不常用字段给创建到一个专门的辅表中。

数据碎片与维护

在长期的数据更改过程中,索引文件和数据文件,都将产生空洞,形成碎片。
通过 optimize table 表名来清理碎片
在这里插入图片描述
或 alter table 表名 engine 原来的引擎; 也能达到清理的效果

范式
第一范式

(1)表的属性要具有原子性
(2)表不能有重复的列
只要是关系型数据库,就天然满足第一范式。

第二范式

属性必须完全依赖于主键。
不能存在完全相同的两条记录,通常是通过设置一个主键来实现,主键一般是非业务逻辑主键

第三范式

所有的非主属性不依赖于其他的非主属性,不存在传递依赖

反三范式

有时候基于性能考虑,需要有意违反三范式,以达到提高查询效率的目的。

视图

作用:简化查询 与 权限控制

语法:

创建视图

create view view_name  as select 语句

删除视图
drop view view_name

修改视图
alter view view_name as select xxxx

查看视图
show tables;

权限控制

封闭表的权限,只开放对应的视图。
在这里插入图片描述

视图与表的关系

视图是表的查询结果,表的数据改变了,将影响视图的结果
视图的数据与表的数据是一一对应时,可以修改
视图的增删也会影响表,但视图并不是总能增删改的
在这里插入图片描述
对于视图insert还应注意,视图必须包含表中没有默认值的列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值