mysql:提升性能的最关键参数
2015-01-15 15:45
267 查看
前言:最近一直在做项目的性能优化,经历了一个多星期的弯路,终于找到了一个突破点,经过和同事(非常感谢,稍后他会将过程写在他的博客,我会把连接地址跟贴到本博客)的努力,我们的期货交易平台性能在服务端已经得到很好的提升。
首先我们先看一下,我的电脑(i3-3220,4G内存,没有配置innodb_buffer_pool_size参数的情况下,抛开程序的性能,经过1个线程-8个线程的测试结果)环境下,大家可以看到如下的图,线程并发情况下,时间不断的攀升,这让人好苦恼,说好的高性能,高并发呢?
结果:
不过经过一个多星期的努力,不经意间,我在同事的电脑上发现,同样的代码测试后,时间和我的不是一个等量级的,要比我的电脑快很多,他的电脑(其他条件等同,CPU为i3-4150),8个商品8000挂单下能达到135ms,首先说明CPU的提升对程序处理来说是非常有效果的,但是依然在高并发的情况下,表现的很差劲。
时至今日,通过比对mysql的配置文件my.ini,不经意间,我们发现innodb_buffer_pool_size在8M和48M的配置下,性能简直就不在一个等级上,OK,那就继续调查吧,最终得出如下结论
详细的解释,可以看如下介绍
简单来说,就是pool-size可以缓存索引和行数据,值越大,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的80%,哇,这个参数简直太棒了。紧接着,我们经过大量的测试发现,在innodb_buffer_pool_size=2G和innodb_buffer_pool_instances=1的参数设置情况下,效果最优。
OK上图
不过经过一个多星期的努力,不经意间,我在同事的电脑上发现,同样的代码测试后,时间和我的不是一个等量级的,要比我的电脑快很多,他的电脑(其他条件等同,CPU为i3-4150),8个商品8000挂单下能达到135ms,首先说明CPU的提升对程序处理来说是非常有效果的,但是依然在高并发的情况下,表现的很差劲。
时至今日,通过比对mysql的配置文件my.ini,不经意间,我们发现innodb_buffer_pool_size在8M和48M的配置下,性能简直就不在一个等级上,OK,那就继续调查吧,最终得出如下结论
详细的解释,可以看如下介绍
简单来说,就是pool-size可以缓存索引和行数据,值越大,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的80%,哇,这个参数简直太棒了。紧接着,我们经过大量的测试发现,在innodb_buffer_pool_size=2G和innodb_buffer_pool_instances=1的参数设置情况下,效果最优。
OK上图
发生了什么事请,该参数下,20个商品,各下1000单,平均时间在55ms,别逗我了,mysql,你怎么不早一点告诉我。
所以,推荐如下,mysql在高并发读写情况下,并且为innodb数据表时,请设置
不过经过一个多星期的努力,不经意间,我在同事的电脑上发现,同样的代码测试后,时间和我的不是一个等量级的,要比我的电脑快很多,他的电脑(其他条件等同,CPU为i3-4150),8个商品8000挂单下能达到135ms,首先说明CPU的提升对程序处理来说是非常有效果的,但是依然在高并发的情况下,表现的很差劲。
时至今日,通过比对mysql的配置文件my.ini,不经意间,我们发现innodb_buffer_pool_size在8M和48M的配置下,性能简直就不在一个等级上,OK,那就继续调查吧,最终得出如下结论
详细的解释,可以看如下介绍
简单来说,就是pool-size可以缓存索引和行数据,值越大,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的80%,哇,这个参数简直太棒了。紧接着,我们经过大量的测试发现,在innodb_buffer_pool_size=2G和innodb_buffer_pool_instances=1的参数设置情况下,效果最优。
OK上图
发生了什么事请,该参数下,20个商品,各下1000单,平均时间在55ms,别逗我了,mysql,你怎么不早一点告诉我。
所以,推荐如下,mysql在高并发读写情况下,并且为innodb数据表时,请设置
首先我们先看一下,我的电脑(i3-3220,4G内存,没有配置innodb_buffer_pool_size参数的情况下,抛开程序的性能,经过1个线程-8个线程的测试结果)环境下,大家可以看到如下的图,线程并发情况下,时间不断的攀升,这让人好苦恼,说好的高性能,高并发呢?
结果:
不过经过一个多星期的努力,不经意间,我在同事的电脑上发现,同样的代码测试后,时间和我的不是一个等量级的,要比我的电脑快很多,他的电脑(其他条件等同,CPU为i3-4150),8个商品8000挂单下能达到135ms,首先说明CPU的提升对程序处理来说是非常有效果的,但是依然在高并发的情况下,表现的很差劲。
时至今日,通过比对mysql的配置文件my.ini,不经意间,我们发现innodb_buffer_pool_size在8M和48M的配置下,性能简直就不在一个等级上,OK,那就继续调查吧,最终得出如下结论
innodb_buffer_pool_size=2G innodb_buffer_pool_instances=1
详细的解释,可以看如下介绍
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and # row data. The bigger you set this the less disk I/O is needed to # access data in tables. On a dedicated database server you may set this # parameter up to 80% of the machine physical memory size. Do not set it # too large, though, because competition of the physical memory may # cause paging in the operating system. Note that on 32bit systems you # might be limited to 2-3.5G of user level memory per process, so do not # set it too high.
简单来说,就是pool-size可以缓存索引和行数据,值越大,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的80%,哇,这个参数简直太棒了。紧接着,我们经过大量的测试发现,在innodb_buffer_pool_size=2G和innodb_buffer_pool_instances=1的参数设置情况下,效果最优。
OK上图
不过经过一个多星期的努力,不经意间,我在同事的电脑上发现,同样的代码测试后,时间和我的不是一个等量级的,要比我的电脑快很多,他的电脑(其他条件等同,CPU为i3-4150),8个商品8000挂单下能达到135ms,首先说明CPU的提升对程序处理来说是非常有效果的,但是依然在高并发的情况下,表现的很差劲。
时至今日,通过比对mysql的配置文件my.ini,不经意间,我们发现innodb_buffer_pool_size在8M和48M的配置下,性能简直就不在一个等级上,OK,那就继续调查吧,最终得出如下结论
innodb_buffer_pool_size=2G innodb_buffer_pool_instances=1
详细的解释,可以看如下介绍
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and # row data. The bigger you set this the less disk I/O is needed to # access data in tables. On a dedicated database server you may set this # parameter up to 80% of the machine physical memory size. Do not set it # too large, though, because competition of the physical memory may # cause paging in the operating system. Note that on 32bit systems you # might be limited to 2-3.5G of user level memory per process, so do not # set it too high.
简单来说,就是pool-size可以缓存索引和行数据,值越大,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的80%,哇,这个参数简直太棒了。紧接着,我们经过大量的测试发现,在innodb_buffer_pool_size=2G和innodb_buffer_pool_instances=1的参数设置情况下,效果最优。
OK上图
发生了什么事请,该参数下,20个商品,各下1000单,平均时间在55ms,别逗我了,mysql,你怎么不早一点告诉我。
所以,推荐如下,mysql在高并发读写情况下,并且为innodb数据表时,请设置
innodb_buffer_pool_size=2G innodb_buffer_pool_instances=1
不过经过一个多星期的努力,不经意间,我在同事的电脑上发现,同样的代码测试后,时间和我的不是一个等量级的,要比我的电脑快很多,他的电脑(其他条件等同,CPU为i3-4150),8个商品8000挂单下能达到135ms,首先说明CPU的提升对程序处理来说是非常有效果的,但是依然在高并发的情况下,表现的很差劲。
时至今日,通过比对mysql的配置文件my.ini,不经意间,我们发现innodb_buffer_pool_size在8M和48M的配置下,性能简直就不在一个等级上,OK,那就继续调查吧,最终得出如下结论
innodb_buffer_pool_size=2G innodb_buffer_pool_instances=1
详细的解释,可以看如下介绍
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and # row data. The bigger you set this the less disk I/O is needed to # access data in tables. On a dedicated database server you may set this # parameter up to 80% of the machine physical memory size. Do not set it # too large, though, because competition of the physical memory may # cause paging in the operating system. Note that on 32bit systems you # might be limited to 2-3.5G of user level memory per process, so do not # set it too high.
简单来说,就是pool-size可以缓存索引和行数据,值越大,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的80%,哇,这个参数简直太棒了。紧接着,我们经过大量的测试发现,在innodb_buffer_pool_size=2G和innodb_buffer_pool_instances=1的参数设置情况下,效果最优。
OK上图
发生了什么事请,该参数下,20个商品,各下1000单,平均时间在55ms,别逗我了,mysql,你怎么不早一点告诉我。
所以,推荐如下,mysql在高并发读写情况下,并且为innodb数据表时,请设置
innodb_buffer_pool_size=2G innodb_buffer_pool_instances=1
相关文章推荐
- 提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
- 提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances
- apache/php 性能大幅提升关键参数
- CentOS系统参数优化-提升MySQL服务器性能
- paip.提升性能---mysql 性能 测试以及 参数调整.txt
- mysql数据库性能优化的关键参数及mysql服务器优化
- paip.提升性能---mysql 性能 测试以及 参数调整.txt
- mysql配置my.cnf文件,以及参数优化提升性能
- 优化mysql性能的十个参数的详细介绍
- 影响Mysql性能的几个重要参数说明
- [转]通过分区(Partition)提升MySQL性能
- [转]通过分区(Partition)提升MySQL性能
- [DSA] 决定数字血管造影系统综合性能的关键参数研究
- mysql性能优化的参数简介
- 通过分区(Partition)提升MySQL性能
- [DSA] 决定数字血管造影系统综合性能的关键参数研究
- 通过分区(Partition)提升MySQL性能
- MySQL关键参数详细设置
- 使用规范的url参数命名,降低被攻击的危险,提升应用程序性能
- 对MySQL性能影响关系紧密的五大配置参数