浅谈innodb_buffer_pool_size的设置

设置innodb_buffer_pool_size为可用内存的50-60%.注意可用内存应该是linux命令free下的-/+ buffers/cache行的free值;innodb_buffer_pool_size的值应该是在mysql实例没有启动情况下的值,而不是实例启动后的值。见示例。

示例:

(1)在没有对innodb_buffer_pool_size参数优化前:

SELECT sql_no_cache

N1.N_NAME AS SUPP_NATION,

N2.N_NAME AS CUST_NATION,

EXTRACT(YEAR FROM L_SHIPDATE) AS L_YEAR,

SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS REVENUE

FROM    SUPPLIER,

LINEITEM,

ORDERS,

CUSTOMER,

NATION N1,

NATION N2

WHERE

S_SUPPKEY = L_SUPPKEY

AND O_ORDERKEY = L_ORDERKEY

AND C_CUSTKEY = O_CUSTKEY

AND S_NATIONKEY = N1.N_NATIONKEY

AND C_NATIONKEY = N2.N_NATIONKEY

AND (N1.N_NAME = ‘FRANCE‘ AND N2.N_NAME = ‘GERMANY‘ OR N1.N_NAME = ‘GERMANY‘ AND N2.N_NAME = ‘FRANCE‘)

AND L_SHIPDATE >= DATE ‘1995-01-01‘

AND L_SHIPDATE <= DATE ‘1996-12-31‘

GROUP BY

SUPP_NATION,

CUST_NATION,

L_YEAR

ORDER BY

SUPP_NATION,

CUST_NATION,

L_YEAR;

+-------------+-------------+--------+--------------------+

| SUPP_NATION | CUST_NATION | L_YEAR | REVENUE            |

+-------------+-------------+--------+--------------------+

| FRANCE      | GERMANY     |   1995 |      54639732.7336 |

| FRANCE      | GERMANY     |   1996 |  54633083.30760003 |

| GERMANY     | FRANCE      |   1995 |  52531746.66970005 |

| GERMANY     | FRANCE      |   1996 | 52520549.022399954 |

+-------------+-------------+--------+--------------------+

4 rows in set (2 min 0.90 sec)

查询耗费2 min 0.90 sec

(2)数据库实例启动情况下对可用内存的调整

[[email protected] ~]# free

total       used       free     shared    buffers     cached

Mem:       1034708     999860      34848          0       2852     161448

-/+ buffers/cache:     835560     199148

Swap:      4192924        152    4192772

设置innodb_buffer_pool_size值为可用内存的60%

199148*60%=119M,取128M

重启数据库后再次运行上述查询语句,查看执行时间:

+-------------+-------------+--------+--------------------+

| SUPP_NATION | CUST_NATION | L_YEAR | REVENUE            |

+-------------+-------------+--------+--------------------+

| FRANCE      | GERMANY     |   1995 |      54639732.7336 |

| FRANCE      | GERMANY     |   1996 |  54633083.30760003 |

| GERMANY     | FRANCE      |   1995 |  52531746.66970005 |

| GERMANY     | FRANCE      |   1996 | 52520549.022399954 |

+-------------+-------------+--------+--------------------+

4 rows in set (7.55 sec)

(3)数据库实例没有启动情况下对可用内存的调整

[[email protected] ~]# service mysql stop

Shutting down MySQL....                                    [  OK  ]

[[email protected] ~]# free

total       used       free     shared    buffers     cached

Mem:       1034708     430908     603800          0       4396     353292

-/+ buffers/cache:      73220     961488

Swap:      4192924        152    4192772

设置innodb_buffer_pool_size值为可用内存的60%

961488*60%=577M,取580M

重启数据库后再次运行上述查询语句,查看执行时间:

+-------------+-------------+--------+--------------------+

| SUPP_NATION | CUST_NATION | L_YEAR | REVENUE            |

+-------------+-------------+--------+--------------------+

| FRANCE      | GERMANY     |   1995 |      54639732.7336 |

| FRANCE      | GERMANY     |   1996 |  54633083.30760003 |

| GERMANY     | FRANCE      |   1995 |  52531746.66970005 |

| GERMANY     | FRANCE      |   1996 | 52520549.022399954 |

+-------------+-------------+--------+--------------------+

4 rows in set (1.90 sec)

查询时间缩短为2s左右。

时间: 2024-11-10 12:37:45

浅谈innodb_buffer_pool_size的设置的相关文章

浅谈组策略设置IE受信任站点

在企业中,通常会有一些业务系统,要求必须加入到客户端IE受信任站点,才能完全正常运行访问,在没有域的情况下,可能要通过管理员手动设置,或者通过其它网络推送方法来设置. 有了域之后,这项工作就可以很好的通过组策略来统一完成,管理员可以在AD里面专门定义一条用于IE设置的组策略,来集中管理客户端的IE设置,那么这条组策略应该如何设置,其实有很多种办法,今天笔者提取其中三条比较常见的场景来和各位看官进行讨论. 首先,最常见的肯定就是这条了,在计算机配置 - 管理模板 - Windows组件 - Int

浅谈vim环境设置

有时候默认的vim环境并不适合自己的要求,这时我们可以通过修改vim的设置如字体.颜色.自动缩进等等以适应我们的需求. 常用的设置参数如下: : set nu : set nonu 设置与取消行号 : set hlsearch : set nohlsearch 查找的字符串是否反白显示 : set all显示所有的环境参数设置值 : set 显示与系统默认值不同的设置参数 : set autoindent 自动缩进 : syntax on : syntax off 是否依据不同程序相关语法显示不

浅谈设置字体大小

浅谈设置字体大小 前言 如果设置字体用的是[UIFontsystemFontOfSize:20.0];这种方式 看一下文档会发现这里的后边的字体的参数单位是point即pt 那么如果是UI设计师给我们的标注也是pt为单位的话直接设置就好(有一个基准,别的机型做相应的增量处理),如果是给我们的标注是px(像素)的话,我们该要怎么写呢 举个例子 比如说是iPhone6的机型(这里暗含所有的scale为2的机型),字体30px 那么设置字体的时候写多少合适呢? 见到网上给出了一个公式是px ÷ 96

单页应用SEO浅谈

单页应用SEO浅谈 前言 单页应用(Single Page Application)越来越受web开发者欢迎,单页应用的体验可以模拟原生应用,一次开发,多端兼容.单页应用并不是一个全新发明的技术,而是随着互联网的发展,满足用户体验的一种综合技术. SEO 一直以来,搜索引擎优化(SEO)是开发者容易忽略的部分.SEO是针对搜索(Google.百度.雅虎搜索等)在技术细节上的优化,例如语义.搜索关键词与内容相关性.收录量.搜索排名等.SEO也是同行.市场竞争常用的的营销手段.Google.百度的搜

浅谈数据库系统中的cache(转)

http://www.cnblogs.com/benshan/archive/2013/05/26/3099719.html 浅谈数据库系统中的cache(转) Cache和Buffer是两个不同的概念,简单的说,Cache是加速"读",而buffer是缓冲"写",前者解决读的问题,保存从磁盘上读出 的数据,后者是解决写的问题,保存即将要写入到磁盘上的数据.在很多情况下,这两个名词并没有严格区分,常常把读写混合类型称为buffer cache,本文后续的论述中,统一

浅谈 Java Printing

浅谈 Java  Printing 其实怎么说呢?在写这篇博文之前,我对java printing 可以说是一无所知的.以至于我在敲文字时, 基本上是看着api文档翻译过来的.这虽然看起来非常的吃力,但是我相信,有道大哥不会辜负我的.嘻 嘻! Java Printing 技术,也就是我们平时所接触的打印,只不过是说可以用Java实现而已. 一.Java Printing 打印简介 Java Printing API能够使java应用程序实现相关的打印功能,如: 1.打印所有 Java 2D 和

浅谈Android多屏幕的事

浅谈Android多屏幕的事 一部手机可以同时看片.聊天,还可以腾出一支手来撸!这么吊的功能(非N版本,非第三方也能实现,你不知道吧)摆在你面前,你不享用?不关注它是怎样实现的?你来,我就满足你的欲望! 一部手机可以同时看片.聊天,还可以腾出一支手来撸==!就像这样: 是时候告别来回切换应用屏幕的酸爽了,还可以在分屏模式下两Activity间直接拖放数据! 好高大上的样子!这是怎么实现的?别急,我们一一道来: kitkat(4.4)版本对多任务分屏的实现 由于相关的代码和功能被封装及隐藏起来,所

浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)——requirejs + angular + angular-route>探讨了angular+requirejs的一个简单架构,这一篇继续来看看backbone如何跟requirejs结合. 相同地,项目架构好与坏不是说用了多少牛逼的框架,而是怎么合理利用框架,让项目开发更流畅,代码更容易管理.那么带着这个目的,我们来继续探讨backbone. 首

浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

本文转载自:http://www.cnblogs.com/kenkofox/p/4643760.html 心血来潮,打算结合实际开发的经验,浅谈一下HTML5单页面App或网页的架构. 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验最好,更像原生app.简单来说,单页面App不需要频繁切换网页,可以局部刷新,整个加载流畅度会好很多. 废话就不多说了,直接到正题吧,浅谈一下我自己理解的几种单页面架构: 1.requirejs