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

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

相关推荐
q***06471 小时前
MySQL的UPDATE(更新数据)详解
数据库·mysql
8***B1 小时前
MySQL性能
数据库·mysql
q***72191 小时前
oracle使用PLSQL导出表数据
数据库·oracle
数据库生产实战1 小时前
Oracle DG备库日志切换解析,Private strand flush not complete如何理解?(基础知识)
数据库·oracle
百***75741 小时前
从 SQL 语句到数据库操作
数据库·sql·oracle
i***39581 小时前
SQL 注入详解:原理、危害与防范措施
数据库·sql·oracle
m***56723 小时前
Win10下安装 Redis
数据库·redis·缓存
Warren983 小时前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展
kka杰4 小时前
MYSQL 表的增删查改-更新/删除
数据库·mysql
深藏bIue5 小时前
linux服务器mysql目录下的binlog文件删除
linux·服务器·mysql