mysql 大量写入 优化_MYSQL大批量写入之性能优化

本文主要探讨了在大量写入数据的场景下,如何优化MySQL的性能。重点介绍了调整数据库参数,如innodb_flush_log_at_trx_commit、temp_table_size、max_allowed_packet等,以提高写入速度。同时,提出减少磁盘IO、硬件优化,如主从复制、读写分离、使用SSD等方法,以提升数据库的写入性能。
摘要由CSDN通过智能技术生成

大家提到Mysql的性能优化都是注重于优化sql以及索引来提升查询性能,大多数产品或者网站面临的更多的高并发数据读取问题。然而在大量写入数据场景该如  何优化呢?

今天这里主要给大家介绍,在有大量写入的场景,进行优化的方案。

总的来说MYSQL数据库写入性能主要受限于数据库自身的配置,以及操作系统的性能,磁盘IO的性能。主要的优化手段包括以下几点:

1:调整数据库参数

(1) innodb_flush_log_at_trx_commit

默认为1,这是数据库的事务提交设置参数,可选值如下:

0: 日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新,但是在一个事务提交不做任何操作。

1:在每个事务提交时,日志缓冲被写到日志文件,对日志文件做到磁盘操作的刷新。

2:在每个提交,日志缓冲被写到文件,但不对日志文件做到磁盘操作的刷新。对日志文件每秒刷新一次。

有人会说如果改为不是1的值会不会不安全呢? 安全性比较如下:

在 mysql 的手册中,为了确保事务的持久性和一致性,都是建议将这个参数设置为 1 。出厂默认值是 1,也是最安全的设置。

当innodb_flush_log_at_trx_commit和sync_binlog  都为 1 时是最安全的,在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句 或者一个事务。

但是这种情况下,会导致频繁的io操作,因此该模式也是最慢的一种方式。

当innodb_flush_lo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值