汇总网上的MYSQL性能优化

本文深入探讨了MySQL数据库性能优化的关键策略,包括利用多记录插入、延迟插入、批量加载和调整配置参数等方法,旨在显著提升数据读写效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、主要关注插入的性能优化:

1)

在一条insert语句中采用多重纪录插入格式.而且使用load data infile来导入大量数据,这比单纯的indert快好多.

在MYSQL中具体表现为:INSERT INTO TABLEQ VALUES (),(),...();
还有就是在MYISAM表中插入大量记录的时候先禁用到KEYS后面再建立KEYS,具体表现语句:
 ALTER TABLE TABLE1 DISABLE KEYS;ALTER TABLE TABLE1 ENABLE KEYS;
而对于INNNODB 表在插入前先 set autocommit=0;完了后:set autocommit=1;这样效率比较高。

 

2)

1: 同时插入许多行,一次插入多条数据
2: 从不同连接插入很多行,使用insert delayed语句 ---用延迟插入也可以加快速度,INSERT DELAYED语句加快速度。
3: 用文本文件装载表,然后load,这样通常更快!
4: 锁定表再插入......

3)

日志类的应用,应该很少有update和delete。修改一下参数,让MyISAM引擎并发插入,速度应该会有提升。

4)

日志文件设大点。日志缓存也大点。用以减少日志的磁盘操作。
关闭autocmmit。
INSERT INTO yourtable VALUES (1,2), (5,5), ...; 减少客户端与服务器端的通信开销
将唯一键检查(uniqueness check )关闭,同样的关闭FOREIGN KEY 。 -----唯一键检查关闭,会插入多条相同的数据。
加大buffer pool,插入时减少磁盘 I/O。

5)

数据库的存储格式为MyISAM时,在不使用transaction的前提下,让插入更快.

6) 客户端延迟上报

用户的客户机程序,不是实时上报,缓存一天时间,都写在本地数据文件
  每天由svr端发命令给客户机,指定要把哪些文件上报上来,不接收到命令的话,就不上报。

7)

1,c++ 记日志,并上传日志。
2,表直接用myisam引擎,装mysql5.1 表分区。(分表不要建在同一块硬盘上,如果有条件的话,用用raid)
3,用load 的方式直接入库数据。(一个表中6个字段,5个索引,18分钟可以2.6亿条没问题,包生成索引)
4,扩内存。有条件扩到32G,优化sort,group by。
5,用myisampack来压缩数据库。能节约一半空间。索引不会被压缩。

8)

1、推荐使用InnoDB。
2、关闭外键约束。
3、采用多值插入“INSERT INTO yourtable VALUES (1,2), (5,5), ...;”
4、加大buffer pool 是不错办法。

相关优化配置:
6、 推荐InnoDB的配置(1G内存情况,主要运行mysql服务器):
innodb_buffer_pool_size = 600M
innodb_additional_mem_pool_size = 64M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 256M
#innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
innodb_file_per_table
其中innodb_flush_log_at_trx_commit和innodb_file_per_table对I/O性能影响最大。





 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值