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具备行级锁,事务,

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

相关推荐
m0_702036531 小时前
mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑
jvm·数据库·python
qxwlcsdn1 小时前
如何用 IndexedDB 存储从 API 获取的超大列表并实现二级索引
jvm·数据库·python
phltxy1 小时前
Redis 主从复制
java·数据库·redis
2301_809244531 小时前
C#怎么使用协变和逆变 C#泛型中的in和out关键字协变逆变是什么意思怎么用【语法】
jvm·数据库·python
知识汲取者2 小时前
巨量引擎营销 API 完整文档
开发语言·数据库·python
j7~3 小时前
【MYSQL】在Centos7和ubuntu22.04环境下安装
数据库·c++·mysql·ubuntu·centos
环流_3 小时前
redis:持久化rdb
java·数据库·redis
Donk_673 小时前
MariaDB 数据库管理手册
数据库·mariadb
阿洛学长3 小时前
PostgreSQL 超详细安装与使用教程:从入门到实战
数据库·postgresql
许彰午3 小时前
Oracle Redo日志与Undo回滚段损坏恢复实战
数据库·oracle