mysql视图、事物、索引

视图
  • 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦
  • 解决:定义视图
  • 视图本质就是对查询的封装
  • 定义视图,建议以v_开头

create view 视图名称 as select语句;

例如:创建视图,查询学生对应的成绩信息

create view v_stu_sco as 
select students.*,scores.score from scores
inner join students on scores.stuid=students.id;
  • 查看视图

    show tables

  • 删除视图

    drop view 视图名称

  • 使用视图,查询

    select * from v_stu_score

事务
  • 事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性

  • 事务的四大特性

    • 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行
    • 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致
    • 隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的
    • 持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障
  • 事务命令

    • 开启事务

    开启事务后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中

    begin

    • 提交事务

    将缓存中的数据变更维护到物理表中

    commit

    • 回滚事务

    放弃缓存中变更的数据

    rollback

索引
  • 当数据库中数据量很大时,查找数据会变得很慢,这个时候,就可以利用索引

  • 主键和唯一索引都是索引,都可以提高查询速度

    • 主键是数据物理存储的位置
    • 索引会单独创建一个目录,对应数据的位置
  • 索引分单列索引和组合索引

    • 单列所以,即一个索引只包含单个列,一个表可以有多个单列索引
    • 组合索引,即一个索引包含多个列
  • 查看索引

    show index from 表名;

  • 创建索引

    create index 索引名称 on 表名(字段名称(长度));

    • 如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致
    • 字段类型如果不是字符串,可以不填写长度部分
  • 删除索引

    drop index 索引名称 on 表名;

  • 索引缺点

    • 索引能够提高查询速度,但是会降低更新表的速度,因为更新时,mysql不仅要保存数据,还要保存索引文件
    • 索引会占用磁盘空间索引文件

#

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值