mysql 细分

索引选择性 = 索引列的唯一值数量 / 表中的总行数

mysql如何优化-CSDN博客

批量问题

批处理默认是逐条发送 SQL 到数据库的,没有充分利用数据库提供的原生批处理能力,需要额外的配置来启用真正的批处理支持,如使用ExecutorType.BATCH

自定义injector 或者 mapper里面自己写sql

执行过程

  • MySQL服务器通过网络接口监听来自客户端的连接请求
  • 查询解析器解析SQL语句,检查语法是否正确,生成一个内部表示结构(如解析树
  • 基本的语义检查,如验证表和列是否存在 类型是否匹配 权限 
  • 查询优化器会对解析树进行转换和优化,以找到执行该查询的最有效方法

          优化器可能会使用批量插入优化、调整索引策略等,减少磁盘I/O和网络通信的开销

  • 估不同的执行计划,(统计信息/优化规则)并选择成本最低的那个
  1. 分析sql要做什么 表连接过滤条件,查看物理结构 类型 约束
  2. 优化器多个执行路径,扫描顺序 连接方法(嵌套 哈希连接) 使用索引
  3. 成本估计CPU IO 内存(表行数/列值分布)          
  • 基于优化器决定,生成一个详细的执行计划,描述如何执行SQL语句

           如何访问表、使用的索引、排序 分组 连接顺序、过滤条件等

  • 开始执行批量操作,批量可能使用内存
  • 批量插入,可能会使用“批量插入缓冲”技术,多个组合成一次较大的磁盘写入,减少I/O
  • 批量更新或删除,按照执行计划中的步骤,逐行或逐块地处理符合条件的记录
  • 管理并发访问,维护事务的一致性,确保在发生错误时能够回滚到一致的状态

             隔离级别,可能会使用行锁、表锁或其他锁定机制来防止多个事务同时修改同一数据

             各种并发控制策略来优化性能,例如多版本并发控制(MVCC)

             记录事务日志

  • 生成一个结果集,其中包含受影响的行数、错误信息(如果有)等 网络接口发送给客户端
  • 释放执行该操作期间占用的所有资源,包括内存、锁等
  • 不再发送其他请求,关闭连接,最小连接数可能会空闲

中间插一个事务吧 spring事务-CSDN博客 自家博客随便拿

事务隔离级别:

    读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)​

事务传播行为:

    propagation_requires_new:开启新事物,外层和内层互不影响

    propagation_required:存在则加入,否则新建

    propagation_supports:存在则加入,无则无

    propagation_mandatory:存在则加入,无则报错

    propagation_not_supported:非事务执行,挂起事务

    propagation_never:存在事务报错

    propagation_nested:有则运行在一个嵌套事务中,savepoint,嵌套事务可独立当前事务单独提交/回滚,无则required算,nestedTransactionAllowed=true;外层事务失败回滚内层,内层不影响外层

MVCC

    是一种用来解决读写冲突的无锁并发控制

快照读 当前读

三个隐式字段trxId事务id,rollptr回滚指针,rowid隐藏主键,undo日志read view三个组件

undolog删除:快照读或事务回滚不涉及该日志时,才会被purge线程统一清除

   数据更新和删除时只设置一下老记录的deletedbit,后面由purge统一清除

修改  加上  排他锁    ,拷贝到undolog中  已经有的话 链表头部  

readView 事务执行快照读 生成一个数据系统当前快照,记录并维护系统当前活跃事务id trx_list

  • 被修改数据的最新纪录中的trxId,当前其他活跃事务id比较  不符合   回滚指针 比较事务id
  • 事务id与uplimitid比较,是否小于 ? 是否大于等于lowlimitid,是否在trx_list中 ==》可见性
  • RR级别 第一次快照读创建的
  • RC每次快照读 新生成快照和readView

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全国小区 mysql 是一个使用 mysql 数据库的全国小区信息管理系统。通过该系统,可以对全国各个小区的信息进行管理和查询。 首先,全国小区 mysql 可以提供基本的小区信息管理功能。管理员可以通过系统添加、编辑和删除小区的基本信息,包括小区名称、地址、总建筑面积、总户数等。同时,管理员还可以为每个小区设置权限,包括物业公司、业主委员会等,以便对小区的管理进行细分。 其次,全国小区 mysql 还可以提供小区设施设备的管理功能。管理员可以记录每个小区的公共设施设备,比如小区大门、健身房、游泳池等,并进行维护和保养的记录。同时,系统还可以提供设备使用情况的统计和分析功能,方便管理员对设备进行合理安排和管理。 另外,全国小区 mysql 还可以实现小区通知公告的发布和管理功能。管理员可以在系统中发布小区通知、活动信息等,方便与业主进行沟通和交流。同时,居民也可以通过系统查看最新的通知和参与小区活动。 最后,全国小区 mysql 还可以提供小区安全管理功能。管理员可以记录小区的安全事故、事件,并进行处理和跟进。同时,系统还可以配备监控摄像头、门禁系统等,提高小区的安全性。 综上所述,全国小区 mysql 是一个全面且方便的小区信息管理系统。通过这个系统,可以更好地管理和维护全国各个小区的信息和设施,提高小区居民的生活质量和安全保障。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值