MySQL数据库(七)SQL 优化

目录 ​​​​​​​

[一 插入数据](#一 插入数据)

[1 批量插入](#1 批量插入)

[2 手动提交事务](#2 手动提交事务)

[3 主键顺序插入](#3 主键顺序插入)

[4* 使用load插入指令数据](#4* 使用load插入指令数据)

[二 主键优化](#二 主键优化)

[1 数据组织方式](#1 数据组织方式)

[2 页分裂](#2 页分裂)

[​编辑3 页合并](#编辑3 页合并)

[4* 主键设计原则](#4* 主键设计原则)

[三 order by 优化](#三 order by 优化)

[四 group by 优化](#四 group by 优化)

[五 limit 优化](#五 limit 优化)

[六 count优化](#六 count优化)

[七 update优化](#七 update优化)


一 插入数据

采用方法

1 批量插入

2 手动提交事务

3 主键顺序插入

4* 使用load插入指令数据

二 主键优化

1 数据组织方式

在InnoDB存储引擎中,表中的数据都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表

2 页分裂

页可以为空也可以填充一半,也可以填充全部。每个也包含2-N行数据(如果一行数据过大会行溢出),根据主键排列。-主键乱序插入可能出现的问题。

3 页合并

4* 主键设计原则

  • 1 满足业务需求的情况下,尽量降低主键的长度。
  • 2 插入数据时尽量采用顺序插入选择使用AUTO_INCREMENT自增主键。
  • 3 尽量不要使用UUID(往往是无序的)做主键或者是其他自然主键,如身份证号。
  • 4 业务操作时尽量减少对主键的修改

三 order by 优化

代码实现:

四 group by 优化

五 limit 优化

六 count优化

七 update优化

InnoDB具备行级锁,事务,

在执行语句时如果没有索引,而进行更新则会表锁,而无法再对表中的数据进行更新。

相关推荐
蜡笔小炘1 小时前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs
韩立学长1 小时前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
Re.不晚2 小时前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构
老邓计算机毕设2 小时前
SSM智慧社区信息化服务平台4v5hv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·智慧社区、·信息化平台
麦聪聊数据2 小时前
为何通用堡垒机无法在数据库运维中实现精准风控?
数据库·sql·安全·低代码·架构
2301_790300962 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
m0_736919103 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
亓才孓3 小时前
[JDBC]PreparedStatement替代Statement
java·数据库
m0_466525293 小时前
绿盟科技风云卫AI安全能力平台成果重磅发布
大数据·数据库·人工智能·安全
爱学习的阿磊4 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python