2020.4.24 Mysql day03

发布于 2020-04-24  85 次阅读


Table of Contents

*

  • 隔离性

    • 事务只要没提交,里面执行的命令,只能在当前会话看到,别的会话看到还是之前的数据,当commit之后,数据才统一。
  • 持久性

    • 事务提交之后,修改的数据就被永久保存了
  • 事务注意点

    • 事务只针对表记录操作有效,库和表的操作无效
    • 事务一旦提交,对数据库的更改就是永久的
  • E-R模型(Entry -Relationship)

  • SQL优化

    • 存储引擎优化:
      • 1.读操作多
      • 2.写操作多
    • 索引优化:
      • 1.常查看的表建立索引
      • 2.常where的表建立索引
      • 3.常order by的建立索引
    • SQL语句优化:
      • 1.单挑查询最后添加limit 1,停止全表扫描
      • 2.where子句中不适用 != ,否则放弃索引,全表扫描
      • 3.尽量避免NULL值判断,否则放弃索引,全表扫描,优化方法就是设置default 为 0
      • 4.尽量避免or连接条件,否则放弃索引,全表扫描
      • 5.模糊查询尽量避免使用前置%,否则全表扫描(“%a%”)
      • 6.尽量避免使用in和not in,否和全表扫描
      • 7.尽量避免使用select *,*用指定字段替换
  • 4.扩展延伸知识

    • auto_increment自增长

      • alter table t1 auto_increment=1000;
    • mysql8.0创建权限

    • mysql数据库执行命令就提交

      • show variables like ‘autocommit’
      • 事务开启之后 默认关闭autocommit
      • oracle默认没有开启
    • mysql union all

      • UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)
    • UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)