架构设计 - MySQL 插入数据性能优化策略

mysql 数据库提高数据插入效率主要可以考虑以下方面:

  • 使用批量插入数据的 SQL 语句,避免使用 for 循环逐条记录插入。

  • 所有插入语句共用一个事务,避免1条SQL语句开1个事务,所有操作都完成后再提交事务。

  • 尽量按照索引递增顺序插入记录,以避免频繁的调整索引。

  • 控制事务大小。插入的数据量不要超过 innodb_log_buffer_size 配置属性的值,超过这个值会导致 InnoDB 把数据刷到磁盘中,进而影响插入效率。如果数据量太大,可以将大数据插入操作拆分成多个较小的事务。

MySQL 的数据 CRUD 操作性能指标:(以千万级别数据为例)

主键:1 - 10 毫秒

唯一索引:10 - 100 毫秒

非唯一索引:100 - 1000 毫秒

无索引:百万条数据 1000+ 毫秒

相关推荐
IT枫斗者枫哥5 分钟前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
知识搬运临时工16 分钟前
一个模板把 AEM 拖进 Full GC 死亡螺旋:300% CPU、7 GB 堆、310 万行堆栈
java·aws
用户4329359280519 分钟前
CoAP还是MQTT:1万只Cat.1水表三个月带宽续航实测
java
知守观30 分钟前
多模块架构演进:横向分层 vs 纵向领域,13 个真实项目的切分对照
java·后端·微服务
Java成神之路-1 小时前
Java String 为什么不可变?和 HashMap 到底有什么关系?
java
paopaokaka_luck1 小时前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
m0_639906941 小时前
MySQL 锁机制详解|表锁、行锁、意向锁,死锁成因与解决方案
数据库·mysql
文丑颜不良啊1 小时前
LeetCode1401~1420题目解析
java·leetcode
进击的荆棘1 小时前
MySQL——在ubuntu环境下安装MySQL
数据库·mysql·ubuntu
Nuanyt1 小时前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表