当前位置: 首页 > news >正文

SQL优化(插入、主键、order by、group by)

1.索引的设计原则

2.插入优化

2.3.主键优化

2.3.1 页分裂

在插入50的时候,50应该在47之后,但是页空间不足,此时innoDB会创建一个空的页,然后把前一页50%之后的数据移动到新创建的页,然后再插入50这条记录,最后调整指针的指向。

插入结束后:

因此我们在插入数据时顺序插入就不会产生页分裂,性能也就比较高

2.3.2 页合并

合并后:

2.3.2 主键设计的原则

3.order by 优化

3.1 using filesort 和 using index

当排序的字段有两个或更多时,如果对应的都存在索引,那么排序时就是 using index或者 backward index scan(倒序)。当一个字段是正序另一个字段是逆序时,如果不存在对应的 正序/逆序 索引,那么不存在索引的字段还是会使用 filesort

3.2 order by 的设计原则

4.group by优化

5.limit优化

6.count优化

7.update优化

使用update更新记录时,如果对应的条件列没有索引,那么InnoDB会锁住整张表;如果对应的列有索引,那么只会锁住对应的记录。所以update的优化就是确保条件列有索引并且索引不能失效,提高并发的效率。

http://www.lryc.cn/news/578056.html

相关文章:

  • 关于 java:8. Java 内存模型与 JVM 基础
  • ClickHouse 部署
  • RK3568平台开发系列讲解:WIFI的调试手段
  • 重构老项目不再“踩雷”:飞算JavaAI的本地化智能合并实战
  • 企业自建云概念解读|私有云、专有云、混合云、分布式云、企业云
  • Windows桌面上的「了解此图片」怎么弄掉?
  • Tailwind CSS 配置正确,也没有报错,但是样式没有生效(解决~)
  • 如何用废弃电脑变成服务器搭建web网站(公网访问零成本)
  • 成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用
  • 【MySQL基础】MySQL索引全面解析:从原理到实践
  • vscode ssh远程连接ubuntu20失败的解决方法
  • 第9篇:Gin配置管理-Viper的实战使用
  • 批量生成文件名6
  • LeetCode Hot100 (二叉树)
  • 大模型-分布式推理简介
  • Deepoc 大模型在无人机行业应用效果的方法
  • c# 详细分析Task.sleep和Thread.sleep 的区别、使用场景和应用示例
  • MySQL中查询JSON数组字段包含特定字符串的方法
  • 通过python+openCV实现对图片中箭头方向的判断
  • MAC电脑,在 Docker 中已经运行过一次 Oracle 镜像后,再次运行具体操作。
  • 四.生成系统签名
  • Spring Boot属性配置方式
  • 【冷知识】Spring Boot 配置文件外置
  • C++中noexcept的具体特性及其代码示例
  • mysql 分组后时间没有按照最新时间倒序
  • 【知识分享】IIC协议详解
  • Flutter视频压缩插件video_compressffmpeg_kit_flutter_new
  • ffmpeg 安装 windows ubuntu
  • Prompt Enginering
  • vue-33(实践练习:使用 Nuxt.js 和 SSR 构建一个简单的博客)