mysql qps提升_上亿数据MYSQL的innodb优化 QPS轻松过5000

通过一系列针对MySQL 5.5.15-log Windows XP版本的优化,使得单表数据超过1亿条记录的MySQL性能显著提升。在调整了autocommit、减少SELECT命令、批量提交等措施后,QPS达到约5000。测试表明,即便在低端硬件配置下,如Intel Q9300 CPU和2.6G DDR2内存,也能实现高效处理。此外,尝试使用memory引擎作为缓冲未成功,因并发性能限制导致插入失败。重点优化包括设置隔离级别、调整InnoDB参数如innodb_buffer_pool_size和innodb_log_file_size等。
摘要由CSDN通过智能技术生成

最近2周时间, 对于MYSQL 5.5.15-log Windows XP版本,进行了各种测试和优化。目前mysql的许多单表数据已经超过了1亿条记录,MYSQL在经过各种优化后,处理上亿条记录非常轻松,性能远比想象的要好的多。

目前, 硬件情况是 intel Q9300 CPU 2.5G 4核心 775针的老CPU, 内存是2.6G DDR2, 硬盘是5900转2T的希捷节能硬盘, 都是很普通廉价的硬件。

MYSQL的各数据表全部采用innodb引擎,开始使用autocommit, 相当于每一条语句都提交,测试的QPS是:单机2.4万qps,后来修改为取消autocommit, 并且修改代码,缓存了部分中间数据,大幅度减少了一些重复简单的SELECT的命令数量,并且多条记录一次性提交,测试情况是大约 5000 QPS,实际上5000 QPS的等效性能更好一些,因为基本上都是insert和update命令。

中间还测试了memory引擎,定时也测试过,随时插入memory, 定时从memory写到innodb,想这样实现更高的性能,思路是利用内存数据库的高性能,结果不理想, 本来想将insert先插入到memory引擎缓冲,结果,非常失望,memory引擎的并发能力非常有限,偶然会出现插入错误,只好取消了这个思路。 现在看memory引擎的表锁,有时不能给其他进程等待的机会,对于我的应用,本来的思路是先缓冲到memory引擎,满1000条记录,再集中插入innodb, 定时时间设置为30秒,60秒,300秒测试都一样,一旦从memory向innodb写记录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值