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

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

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

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

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

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

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

主键:1 - 10 毫秒

唯一索引:10 - 100 毫秒

非唯一索引:100 - 1000 毫秒

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

相关推荐
程序员Sunday4 小时前
Spring @Transactional 没回滚?按代理调用、异常和传播行为排查
java·后端·spring
ZHOUPUYU4 小时前
PHP 8.0 高级技术实战:从新特性到性能优化
android·性能优化·php
冰暮流星4 小时前
sql之is null 运算符
java·数据库·sql
Rain的Java大神之路4 小时前
🔥13年Java老兵转型AI Agent:90%的人挂在同一个坑,根本不用学Python!(万字实战复盘,建议收藏)
java·后端·面试
yuniko-n4 小时前
【Java】关于容器选型:Deque、PriorityQueue、LinkedList
java·开发语言
yuniko-n4 小时前
【JUC】wait 和 sleep
java·开发语言
知守观4 小时前
18年老兵的十条开发军规:每条背后都是一个翻车现场
java·后端·程序员
Frag0ut4 小时前
Chrome扩展程序管理技巧:安全安装、权限审查与高效使用指南
chrome·性能优化·谷歌浏览器·浏览器插件·扩展程序管理·权限审查·冲突排查
BBmmo4 小时前
我的 Java 学习笔记 · 第 11 篇:Condition.await 为什么必须放在 while 里
java
SimonKing4 小时前
一只离线鼠鼠,干翻了一堆在线格式转换网站
java·后端·程序员