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

MySQL——八、SQL优化

插入数据

insert优化:

  • 批量插入
  • 手动提交事务
  • 主键顺序插入

批量插入:
如果一次性需要插入大批量数据,可以使用load指令进行插入

主键优化

主键乱序插入可能导致页分裂
主键设计原则:

  • 满足业务需求的情况下,尽量降低主键的长度
  • 插入数据时,尽量选择顺序插入,选择使用AUTO_INCREMENT自增主键
  • 尽量不要使用UUID做主键或者其他自然主键,如身份证号
  • 业务操作时,避免对主键的修改

order by优化

  • using filesort:通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓存区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫FileSort排序
  • using index:通过有序索引顺序扫描直接返回有序数据,这种情况即为using index,不需要额外排序,操作效率高

group by优化

  • 在分组操作时,可以通过索引来提高效率
  • 分组操作时,索引的使用也是满足最左前缀法则的

limit优化

一般分页查询时,通过创建覆盖索引能够比较好地提高性能,可以通过覆盖索引加子查询形式进行优化

count优化

按照效率排序,count(字段)< count(主键id) < count(1) ≈ count(*)

update优化

InnoDB的行锁是针对索引加的锁,不是针对记录加的锁,并且该索引不能失效,否则会从行锁升级为表锁。

相关文章:

  • 精简大语言模型:用于定制语言模型的自适应知识蒸馏
  • 商业航天运动控制系统中的高可靠性芯片解决方案:挑战、策略与应用研究
  • 每周靶点分享:Nectin-4、CDH6及文献分享
  • Deno、Bun、Node.js 性能对比与选型指南
  • Linux进程信号处理(26)
  • Axure高级交互设计:文本框循环赋值实现新增、修改和查看
  • Codis集群搭建和集成使用的详细步骤示例
  • Chrome浏览器离线版安装包下载
  • TensorFlow之微分求导
  • spark-cache模式
  • Java基础 5.13
  • SQL 中 INSTR 函数简介及 截取地址应用
  • 125.在 Vue3 中使用 OpenLayers 实现通过 WebGLVector 的方式添加海量点
  • Deepseek+Xmind:秒速生成思维导图与流程图
  • HTML、CSS 和 JavaScript 基础知识点
  • Tomcat和Nginx的主要区别
  • 5G如何让医疗更智能、更高效、更具未来感?
  • python共享内存实际案例,传输opencv frame
  • 中国古代史6
  • 【Nova UI】十六、打造组件库之滚动条组件(中):探秘滑块的计算逻辑
  • 制造四十余年血腥冲突后,库尔德工人党为何自行解散?
  • 金正恩观摩朝鲜人民军各兵种战术综合训练
  • 我的科学观|梅彦昌:科技创新关键在于能否跑得快,而不是有没有钱
  • 因操纵乙烯价格再遭诉讼,科莱恩等四家企业被陶氏索赔60亿
  • 西北大学副校长成陕西首富?旗下巨子生物去年净利超20亿,到底持股多少
  • 市场监管总局等五部门约谈外卖平台企业