mysql的进阶学习--应用篇--其他SQL语句的优化

插入数据时的优化

批量插入

一次性插入的500到1000条是比较合适的, 不建议一次性插入超过一千条.
如果要插入几万条呢?
可以将其, 分割为多条SQL语句:

建议手动提交事务

多条插入语句时, 建议先开启事务, 将多条插入语句作为一个事务提交.

建议主键顺序插入

比起主键乱序, 性能要好的多.

大批量插入数据

例如说, 有一个业务要插入上百万, 上千万的数据记录.
此时使用insert的性能就太低了, 此时可以使用MySQL数据库提供的load指令进行插入, 操作如下:
在这里插入图片描述
左侧就是原始的磁盘文件结构, 右侧就是load进来之后的表
说明, 符合一定规则的文件, 不一定时逗号, 可以时冒号, 等等
演示:
客户端连接服务端时, 加上参数 --local-infile -u root -p
mysql --local-infile -u root -p
设置全局参数local_infile为1, 开启从本地加载文件导入数据的开关
set global local_infile = 1;
执行load指令将准备好的数据, 加载到表结构中
load data local infile '/root/sql1.log' into table 'tb_user' fields terminated by ',' lines terminated by '\n';

主键优化

数据组织方式

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

对于聚集索引来说, 下面存放的是, 表的行数据.

如果主键乱序插入, 可能会出现页分裂现象

有页分裂就有页合并

在这里插入图片描述
在这里插入图片描述

主键设计原则

在这里插入图片描述

order by 优化

group by 优化

limit 优化

count 优化

update优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值