当前位置: 首页 > news >正文

MySQL:进阶巩固-SQL优化

目录

    • 一、INSERT优化
      • 1.1 采用批量插入的方式
      • 1.2 采用手动提交的方式
      • 1.3 主键顺序插入
      • 1.4 大批量插入数据
    • 二、主键优化
    • 三、ORDER BY 排序优化
    • 四、GROUP BY 分组优化
    • 五、LIMIT优化
    • 六、COUNT优化


一、INSERT优化

1.1 采用批量插入的方式

INSERT INTO tb_user values(1, 'zhangsan'),(2, 'lisi'),(3, 'wangwu');

1.2 采用手动提交的方式

START TRANSACTION;
INSERT INTO tb_user VALUES(1, 'zhangsan');
INSERT INTO tb_user VALUES(2, 'lisi');
INSERT INTO tb_user VALUES(3, 'wangwu');
COMMIT;

1.3 主键顺序插入

1.4 大批量插入数据

如果一次性需要插入大批量数据,使用INSERT语句插入性能比较低,此时可以使用MySQL数据库提供的load指令进行插入。

查看开关是否开启

-- 0未开启 1=开启
SELECT @@local_infile;
# 客户端连接服务器时,加上参数 --local-infile
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';

二、主键优化

  • 在满足业务需求的情况下,尽量降低主键的长度
  • 插入数据时,尽量选择顺序插入,选择使用AUTO_INCREMENT主键自增
  • 尽量不要使用UUID做主键或者是其他自然主键,如身份证号

三、ORDER BY 排序优化

  • 根据排序字段创建合适的索引,多字段时,也遵循最左前缀法则。
  • 尽量使用覆盖索引。
  • 多字段排序,一个升序一个降序,此时需要注意联合索引在创建时的规则(ASE/DESC)
  • 如果不可避免的出现filesort,大数据排序时,可以适当增大排序缓冲区大小sort_buffer_size(默认256k)

四、GROUP BY 分组优化

  • 分组时,可以通过索引来提高效率
  • 在分组操作时,索引的使用也是满足最左前缀法则的

五、LIMIT优化

一般分页查询时,通过创建覆盖索引能够比较好地提高性能,可以通过覆盖索引加子查询形式进行优化。

EXPLAIN SELECT * FROM tb_sku t, (SELECT id FROM tb_sku ORDER BY id limit 20000, 10) a WHERE t.id=a.id;

六、COUNT优化

COUNT(字段) < COUNT(主键) < COUNT(1) COUNT(),尽量使用COUNT()


http://www.mrgr.cn/news/23103.html

相关文章:

  • 昔日洗衣液一哥偏执于直播带货市值缩水九成 或成胡干失败样板
  • Qt | ubuntu20.04安装Qt6.5.3并创建一个example完整教程(涉及诸多开发细节,商用慎重)
  • $attrs/$listeners实现爷孙组件通信
  • 输出CAD图中第一个图元类型——c#实现
  • 2024腾讯互联网AI应用专场
  • 每日一练:缺失的第一个正数
  • python爬虫代理ip池搭建
  • 找不到ucrtbased.dll无法继续执行代码怎么办,总结5个方法
  • 【C++ Primer Plus习题】14.2
  • JAVA springboot面试题今日分享
  • C语言从头学57——学习头文件locale.h
  • llvm后端之函数栈帧的创建与销毁
  • C语言深入理解指针5
  • LeetCode之区间
  • Pygame中Sprite类实现多帧动画3-3
  • 宽哥之家小程序任务脚本
  • 关于使用 @iconify/vue2图标库组件的离线使用
  • 【大数据】如何读取多个Excel文件并计算列数据的最大求和值
  • 数据结构与算法-morris遍历
  • 三、TOGAF(概述)