Mysql

事务
事务的特性
  1. 原子性:事务内的操作要么全部完成,要不全部不完成。执行事务过程中出现错误,将执行回滚将数据还原至事务开始前的状态
  2. 一致性:
  3. 隔离性:
  4. 持久性:事务执行完成后,数据将保存在硬盘上
视图
视图是什么
查询
关联查询
  • 左连接:以左表数据去查询右表,如果右表没有关联数据,则该行右表的所有列为null
    表1 left join 表2 on 字段1 = 字段2
    
  • 右连接:以右表数据去查询左表,如果左表没有关联数据,则该行左表数据为null
    表1 right join 表2 on 字段1 = 字段2
    
  • 外连接:执行左连接和右连接,并返回两个结果的和
    表1 full join 表2 on 字段1 = 字段2
    
  • 内连接:只返回符合on条件的数据,当任一表找不到数据时该行不返回
    表1 join 表2 on 字段1 = 字段2
    
  • 交叉连接:将所有可能的组合都查询出来,结果集大小=表1行数*表2行数
数据库范式
第一范式
  1. 第一范式是对关系模式的基本要求
  2. 第一范式规定每一列包含的数据不可再分
第二范式
  1. 实现第二范式前必须先满足第一范式
  2. 第二范式规定表必须拥有一个主键列
第三范式
  1. 实现第三范式必须先满足第二范式
  2. 第三范式规定表内的字段应该消除冗余,不与其他表的字段重复
数据库优化
SQL语句优化
  • 避免使用比较符:在where语句中使用!=,<>等会使引擎放弃使用索引
  • 避免判断是否null:在wherer语句判断字段=null也会放弃使用索引
  • 使用where避免使用having:where是可以使用索引直接获取指定数据,而having是在获取到数据后再进行结果筛选
数据结构优化
  • 范式优化:减少冗余,降低使用空间
  • 反范式优化:增加冗余,减少关联查询
  • 表拆分:水平拆分和垂直拆分
    • 水平拆分:分散单表数据体积
    • 垂直拆分:分散单表读写的io压力
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值