Mysql

  1. sql优化
    (1)建立索引,分区
    (2)避免,where字段判null,函数,like,<>,or,in(可以用between,exists),not in等,会导致索引失效
    (3)explain
  2. 事务和事务隔离级别
    事务指的是一组数据库操作,事务内的操作要么全部成功,要么全部失败,只要一部分失败就回滚所有操作
    级别:
    脏读,读到了其他事务未提交的数据
    可重复读,在一个事务内,最开始读到的数据和事务结束前的任意时刻读到的数据都是一致的,常用于更新操作
    不可重复读,在同一事务内独到的数据可能是不一样的
    幻读,A对一行做更改,B插入与该行更改前相同的数据,B先提交,在A中查询会发现更改未起作用
    SQL 标准定义了四种隔离级别:
    读未提交(READ UNCOMMITTED)
    读提交 (READ COMMITTED)
    可重复读 (REPEATABLE READ)
    串行化 (SERIALIZABLE)
  3. mysql缓存机制
    (1)一级缓存,也称本地缓存,sqlsession级别的缓存。一直开启,数据库同一次会话期间查询到的数据放在本地缓存中
    失效情况:
    sqlsession不同、
    sqlsession相同+查询条件不同、
    sqlsession相同+在两次相同查询条件中间执行过增删改操作
    sqlSession相同,手动清空了一级缓存
    (2)二级缓存,也称全局缓存,基于namespace级别的缓存
    查出的数据首先放在一级缓存中,只有一级缓存被关闭或者提交以后,一级缓存数据才会转移到二级缓存
    和缓存相关的配置/属性:
    1.cacheEnabled:如果是false,关闭二级缓存,不关闭一级缓存。
    2.每个select标签都有userCache="true"属性:对一级缓存没有影响。设置为false,二级缓存失效。
    3.每个增删改标签都有flushCache="true"属性:一级缓存和二级缓存都会被清空。
    4.在查询标签中flushCache="false"属性:如果设置为true,查完会清空,
    一级二级缓存都会被清空,都不会用缓存。
    5.sqlSession.clearn():跟session有关,只会清除一级缓存。
    6.localCacheScope:
    本地缓存作用域。
    使用顺序:二级缓存----->一级缓存-------->数据库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值