22-06月学习笔记.md 2.8 KB

  • 06-05
    • 将剩余的AOP逻辑使用注解的形式实现
    • Spring中事务demo
  • 06-06
    • 韩顺平 mysql教程 使用索引视频
      • 创建索引表的磁盘空间会变大 以视频为例 800万条数据从 524M加了索引大概大小变成655M左右 (空间换时间)
      • 根据索引最左匹配原则 使用 like x% 查询是可以用得到索引的,而使用 like %x% 和 like %x 查询是用不到索引的
      • 为什么使用索引会快?
        • 形成一个索引的数据结构比如二叉树
      • 为什么没有索引会慢?
        • 因为全表扫描
      • 索引对 增删改语句有效率影响(modify操作会影响索引结构所以对速度会有影响)
      • mysql表类型和存储引擎(innoDB、MyISAM等)
  • 06-08
    • mysql事务操作 sql start transaction; savepoint a; INSERT into wb_tbl_a (`company_id`) value(105); rollback to a; SELECT * from wb_tbl_a; commit;
    • mysql开启事务语句
      • start transaction; 、 set autocommit=false;
    • mysql事务隔离级别(定义事务与事务之间的隔离程度)
      • 多个连接开启各自事务操作数据库数据时,数据库要负责隔离操作,来保证各个连接取到的数据是准确的
      • 开发中不考虑隔离性 会引发 脏读、不可读、幻读
        • 脏读:一个事务读取另一个尚未提交的修改时,产生脏读
        • 不可重复读:同一查询在同一事务中多次进行,由于其他提交事务所做的修改或者删除,每次产生不同的结果集,此时发生不可重复读
        • 幻读:同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时产生幻读
      • 设置数据隔离语句以及查询语句 sql --mysql 5 -- select @@tx_isolation; -- mysql8 -- SELECT @@transaction_isolation; --设置隔离级别-- set session transaction isolation level read uncommitted;
  • 06-09
    • mysql事务隔离级别
      • 读未提交( read uncommitted)(不加锁)
      • 读已提交( read committed)(不加锁)
      • 可重复读 (repeatable read)(不加锁)
      • 可串行化 (serializable)(加锁)
    • 存储引擎
      • innodb (支持行锁、支持事务,支持外键)
      • myisam (支持表锁,不支持事务,CRUD速度很快,不支持外键)
      • memory (数据存储在内存中,执行速度很快(没有IO读写),默认支持索引,重启服务数据会丢失(表结构还在))