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优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值