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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/687140.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JINGWHALE 虚拟现实物质与空间理论 —— 全息世界

JINGWHALE 对此论文相关未知以及已知概念、定理、公式、图片等内容的感悟、分析、创新、创造等拥有作品著作权。未经 JINGWHALE 授权,禁止转载与商业使用。 一、虚拟现实物质与空间理论 物质是由离散的奇点JING粒子,依据不同的维度粒度,通过…

[机器学习-03] Scikit-Learn机器学习工具包学习指南:主要功能与用法解析

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

技术速递|Python in Visual Studio Code 2024年5月发布

排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2024 年 5 月发布! 此版本包括以下公告: “Implement all inherited abstract classes”代码操作新的自动缩进设置Debugpy 从 Python 扩展中删除&#…

【知识碎片】2024_05_10

每日代码 至少是其他数两倍的最大数 . - 力扣&#xff08;LeetCode&#xff09; int dominantIndex(int* nums, int numsSize) {int max_num 0;int next_max 0;int pos 0;for(int i 0; i < numsSize; i){if(nums[i] > max_num) {pos i;next_max max_num;max_num…

OpenCompass大模型评估

作业链接&#xff1a; Tutorial/opencompass/homework.md at camp2 InternLM/Tutorial GitHub 项目链接&#xff1a; GitHub - open-compass/opencompass: OpenCompass is an LLM evaluation platform, supporting a wide range of models (Llama3, Mistral, InternLM2,GPT-…

C++随手写一个打字练习软件TL(TypeLetters)附原码

C随手写一个打字练习软件TL&#xff08;TypeLetters&#xff09;附原码 说明 软件名称&#xff1a;TL&#xff08;TypeLetters&#xff09; 开发语言&#xff1a;C 适合人群&#xff1a;零基础小白或C学习者 软件功能&#xff1a;打字练习软件TL&#xff08;TypeLetters&#…

opencv绘制灰度直方图-------c++

灰度直方图 cv::Mat opencvTool::calculateHistogram(const cv::Mat& image) {// 如果输入图像尚未处于灰度级&#xff0c;请将其转换为灰度级cv::Mat grayscale_image;if (image.channels() > 1){cv::cvtColor(image, grayscale_image, cv::COLOR_BGR2GRAY);}else{gra…

【GlobalMapper精品教程】078:计算点的平面(经纬度)坐标、面状数据的周长面积

文章目录 一、加载数据二、计算点的坐标三、计算面状数据的周长面积一、加载数据 在点状图层上右键,编辑属性。 属性表如下所示,可以看到,并没有点的经纬度或者平面坐标。 二、计算点的坐标 选择所有点→右键→属性样式功能→向选定的要素添加坐标边界功能。

QT切换控件布局

1、切换前垂直布局 2、切换后水平布局 3、关键代码 qDebug() << "开始切换布局";QWidget *widget centralWidget();QLayout *layout widget->layout();if(layout){while(layout->count()){QLayoutItem *item layout->takeAt(0);if(item->layout…

探索计算之美:HTML CSS 计算器案例

本次案例是通过HTML和CSS&#xff0c;我们可以为计算器赋予独特的外观和功能&#xff1b; 在这个计算器中&#xff0c;你将会发现&#xff1a; 简洁清晰的界面设计&#xff0c;使用户能够轻松输入和查看计算结果。利用HTML构建的结构&#xff0c;确保页面具有良好的可访问性和…

聊聊ChatGPT:智能语言模型背后的原理

目录 1. ChatGPT的基础&#xff1a;GPT模型 2. 预训练与微调&#xff1a;让模型更加智能 2.1 预训练 2.2 微调 3. 多样化的应用场景 4. 未来的展望 5. 结语 在当今的人工智能领域&#xff0c;OpenAI的ChatGPT无疑是一个炙手可热的话题。它不仅能流畅地进行对话&#xff…

训练YOLOv9-S(注意:官方还没有提供YOLOv9-S的网络,我这是根据网络博客进行的步骤,按照0.33、0.50比例调整网络大小,参数量15.60M,计算量67.7GFLOPs)

文章目录 1、自己动手制造一个YOLOv9-S网络结构1.1 改前改后的网络结构&#xff08;参数量、计算量&#xff09;对比1.2 一些发现&#xff0c;YOLOv9代码打印的参数量计算量和Github上提供的并不一致&#xff0c;甚至yolov9-c.yaml代码打印出来是Github的两倍1.3 开始创造YOLOv…