Kettle集群及Mysql参数调整

合集下载

kettle参数、变量详细讲解

kettle参数、变量详细讲解

kettle参数、变量详细讲解kettle 3.2 以前的版本⾥只有 variable 和 argument,kettle 3.2 中,⼜引⼊了 parameter 概念;variable 即environment variables(环境变量或全局变量),即使是不同的转换它们也拥有同样的值;⽽argument(位置参数)和parameter(命名参数),可以映射为局部变量,只针对⼀个特定的转换,⽐如像是限定结果集的⼤⼩和过滤条件。

1、 variable(变量)variables 也可以认为叫做environment variables , 就像它的名字⼀样,主要是⽤来设定环境变量的,⽐如最常见的:⽂件的存放地址,smtp 的配置等等,你也可以把它认为是编程语⾔⾥⾯的全局变量,即使是不同的转换它们也拥有同样的值;变量可以⽤在转换或作业中,可以通过在转换中使⽤ Set Variable 步骤定义或在kettle.properties⽂件中定义,⽂件的路径默认如下:$HOME/.kettle (Unix/Linux/OSX)C:\Documents andSettings\<username>\.kettle\ (Windows)C:\Users\<username>\.kettle\(Windows Vista)1.1、kettle.properties⽂件中定义全局变量打开⽂件,直接在⾥⾯定义,如: TODAY=to_char(sysdate,'yyyy-mm-dd'),这⾥⽀持数据库函数,说的更直⽩点,就是这⾥定义是个啥,那么在transformation⾥边取到的它就是啥。

在需要的地⽅,直接%%V_YES_DATE%%,或者${V_YES_DATE}就可以得到。

需要提醒的是如果编辑中⽂,需要navationtoascii⼯具或在eclipse中编辑。

定义后保存重启spoon才⽣效。

MySQL中的参数配置及调优方法

MySQL中的参数配置及调优方法

MySQL中的参数配置及调优方法MySQL是当前最流行的开源关系型数据库管理系统之一。

它的广泛应用和可灵活配置的特点使得它成为许多企业和个人的首选。

然而,未经优化的MySQL可能会面临性能下降、资源浪费等问题,因此正确配置和调优MySQL参数是至关重要的。

本文将介绍MySQL中的参数配置及调优方法,帮助读者解决数据库性能问题。

一、参数配置在MySQL中,有许多参数可以配置,以满足不同应用的需求。

以下是一些重要参数的简要介绍:1. 缓冲区参数- innodb_buffer_pool_size:InnoDB存储引擎使用的缓冲池大小。

增大该值可以提高读写性能,但会占用更多内存。

- key_buffer_size:MyISAM存储引擎使用的键缓冲区大小。

同样,增大该值可以提高性能,但会占用更多内存。

2. 连接参数- max_connections:允许的最大连接数。

该值应根据应用的并发连接数进行适当调整,以避免资源浪费和连接超时问题。

- wait_timeout:连接空闲后等待关闭的时间。

默认值为28800秒,可以根据具体需求进行调整。

3. 查询缓存参数- query_cache_type:查询缓存类型。

0表示禁用查询缓存,1表示启用,2表示只缓存SQL_NO_CACHE标记的查询结果。

- query_cache_size:查询缓存大小。

指定用于存储查询缓存的内存大小。

二、调优方法在配置参数之前,我们需要先了解数据库当前的性能瓶颈。

可以通过以下几种方式进行分析:1. 使用MySQL自带的性能监控工具MySQL提供了一系列的性能监控工具,如:MySQL Performance Schema、MySQL Enterprise Monitor等。

通过这些工具,可以实时监控MySQL的运行状态,获得性能数据。

2. 使用开源的性能监控工具除了MySQL自带的工具,还有一些开源的性能监控工具可以用于MySQL性能分析。

MySQL调优参数配置

MySQL调优参数配置

MySQL调优参数配置MySQL服务器硬件优化硬盘:mysql 对磁盘的要求⽐较⾼,包括随机读写的带宽和IOPS和顺序读写的带宽和IOPS,可以通过使⽤⾼转速磁盘、商业FC存储、固态硬盘等⽅式提⾼IOPS及读写带宽;内存:mysql 服务器内存越⾼,可加载的热点索引数据越多,可提供给操作线程的内存越多。

Mysql 读写操作越快;CPU: mysql正常的查询对CPU要求⽐较低,如果磁盘和内存不⾜CPU配置过⾼更容易引起磁盘吞吐量下降严重导致性能过低,所以硬件优化⾸先优化硬盘和内存,只有硬盘和内存⽆瓶颈后增加CPU才会使mysql性能更⾼如果有⼤量的慢查询则很容易将CPU跑满,所以CPU如果过⾼应⾸先检查慢查询优化慢查询,如慢查询优化完成应⾸先检查是否由于磁盘IO过⾼引起的CPU过⾼。

内存优化-数据索引页共享内存innodb_buffer_pool_size1. 作⽤:pool-size可以缓存索引和⾏数据,值越⼤,IO读写就越少,如果单纯的做数据库服务,该参数可以设置到电脑物理内存的75-80%2. 调优参考计算⽅法:val = Innodb_buffer_pool_pages_data / Innodb_buffer_pool_pages_total * 100%val > 95% 则考虑增⼤ innodb_buffer_pool_size,建议使⽤物理内存的75%val < 95% 则考虑减⼩ innodb_buffer_pool_size,建议设置为:Innodb_buffer_pool_pages_data * Innodb_page_size *1.05 / (102410241024)innodb_buffer_pool_instances1. 作⽤:innodb_buffer_pool_instances的值主要⽤于将innodb buffer pool进⾏划分,通过划分innodbbuffer pool为多个实例,可以提⾼并发能⼒,并且减少了不同线程读写造成的缓冲页。

MySQL中的动态参数配置与调整方法

MySQL中的动态参数配置与调整方法

MySQL中的动态参数配置与调整方法概述MySQL是一种常用的关系型数据库管理系统,广泛应用于各种大小公司的数据存储和管理。

在MySQL中,参数配置是非常重要的,它可以对数据库的性能和稳定性产生很大的影响。

本文将讨论MySQL中的动态参数配置与调整方法,帮助读者更好地优化和管理他们的MySQL数据库。

一、动态参数配置的概念与重要性动态参数配置是指MySQL数据库运行时可以通过修改参数值而不需要重启数据库实例来调整数据库的性能和行为。

相比于静态参数配置,动态参数配置更加灵活和方便,可以根据实际需求进行实时调整。

动态参数配置在MySQL数据库的性能优化中起到重要作用。

通过调整各种参数,可以优化查询性能、提高并发性能、减少锁争用等。

不同的参数配置可以产生不同的效果,因此了解如何动态配置参数是非常重要的。

二、动态参数配置的方法1. 使用SET语句修改参数在MySQL中,可以使用SET语句来动态修改参数值。

例如,要动态修改max_connections参数的值为1000,可以使用以下语句:SET GLOBAL max_connections = 1000;这将会立即生效,并且对当前以及将来的连接都起作用。

但是需要注意,这种方式修改的参数值只对当前会话有效,对于其他会话无效。

如果需要修改全局参数的值,可以在参数名称前加上GLOBAL关键字。

例如,要修改innodb_buffer_pool_size全局参数的值为1G,可以使用以下语句:SET GLOBAL innodb_buffer_pool_size = 1G;同样,这种方式的修改也会立即生效,并对当前以及将来的连接都起作用。

2. 修改配置文件除了使用SET语句修改参数外,还可以通过修改MySQL的配置文件来实现动态参数配置。

在MySQL的配置文件f中,可以找到各个参数的默认值,并进行修改。

修改完配置文件后,需要重启数据库实例才能使修改生效。

但是,在部分情况下,可以通过执行FLUSH命令来使修改立即生效,而无需重启数据库实例。

KETTLE 全局参数设定

KETTLE 全局参数设定

全局参数设定
1 功能描述:主要是提取要执行JOB的日期.这个可以做为公共参数来使用.
例如:我们每天要加载上一天的日期的数据,那么所有的JOB都用一个变量就可以了.
2在KETTLE 中设置的方法
●添加一个转换如:获得系统参数控件, 指向一个Set Variables 2 控件.
控件Set Variables 2 中,命名变量名JOBD2 ,在变量活动类型中选择Valid in
the Java Virtual Machine 就是在所有的环境下都是可以用的.
●在添加一个新的转换,添加新的STEP (执行SQL) 把sql 在书写SQL 语句时把变
量包含在内.
DELETE T_THW_BASNFO where stadate = TO_DATE (substr('${JOBD2}',0,10), 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')
在下方: 的变量替换选择上,在把替换变量名字填写上JOBD2 这样就可以了.
注意:在配置全局变量的时候。

发现配置完毕后吧kettle 关闭后全局变量就不见了。

解决方法是:
变量定义:Kettle 安装后会在当前用户目录下(windows 下一般是c:\documents and setting\userName\...)创建一个.Kettle 目录,并在该目录下创建Kettle .properties文件,变量保存在这个属性文件中,变量定义的格式:Var = xxx,
变量引用:使用${Var} 格式来引用一个变量.变量可以用在SQL 语句中,也可以用在其它需要用户输入的地方,如文件名,路径等。

kettle传参数

kettle传参数

Kettle是一款开源的数据集成工具,支持多种数据源之间的数据转换和集成。

Kettle提供了多种方式来传递参数,包括全局参数和局部参数两种方式。

1. 全局参数
全局参数是在整个Kettle流程中都可以使用的参数,可以在步骤中设置全局参数,然后在其他步骤中使用这些参数。

全局参数的设置方式如下:
在Kettle的步骤属性中,找到“参数”选项卡,然后在“参数名称”和“参数值”中输入要传递的参数名称和参数值。

例如,在某个步骤中设置一个名为“username”的全局参数,其值为“admin”,那么在其他步骤中可以使用“${username}”来引用这个参数。

2. 局部参数
局部参数是在当前步骤内部使用的参数,只能在当前步骤内部使用。

局部参数的设置方式如下:
在Kettle的步骤属性中,找到“参数”选项卡,然后在“参数”中输入要传递的参数名称和参数值。

例如,在某个步骤中设置一个名为“password”的局部参数,其值为“123456”,那么在该步骤内部可以使用“${password}”来引用这个参数。

需要注意的是,Kettle中传递参数时,参数名称必须唯一,不能重复。

同时,在使用参数时,需要使用“${parameter_name}”的形式来引用参数,其中“parameter_name”为参数名称。

如果参数不存在,则会返回空字符串。

kettle 数据库连接参数

Kettle 数据库连接参数Kettle 是一款强大的开源数据集成工具,用于实现数据的抽取、转换和加载(ETL)任务。

在使用 Kettle 进行数据集成时,需要配置数据库连接参数,以便与各种数据库进行交互。

本文将介绍 Kettle 中常用的数据库连接参数,并提供详细说明。

数据库连接参数在 Kettle 中,数据库连接参数包括以下几个重要的方面:1.数据库类型:指定要连接的数据库类型,Kettle 支持多种常见的关系型数据库,如 MySQL、Oracle、SQL Server、PostgreSQL 等。

2.主机名:指定要连接的数据库所在服务器的主机名或 IP 地址。

3.端口号:指定要连接的数据库所在服务器上监听的端口号,默认情况下,不同类型的数据库使用不同的默认端口号。

4.数据库名称:指定要连接的具体数据库实例名称。

5.用户名和密码:指定用于登录到目标数据库的用户名和密码,以便进行身份验证和授权。

6.其他高级选项:Kettle 还提供了一些高级选项,如字符集编码、超时设置、SSL 加密等。

这些选项可以根据具体需求进行配置。

配置方法在 Kettle 中配置数据库连接参数非常简单。

以下是具体步骤:1.打开 Kettle 工作台,创建一个新的转换或作业。

2.在转换或作业中,找到需要使用数据库连接的组件(如数据库输入、输出等),双击打开组件的属性窗口。

3.在属性窗口中,找到“连接”或“数据库连接”相关的选项,点击进入配置界面。

4.在配置界面中,填写各个数据库连接参数。

根据具体情况,填写主机名、端口号、数据库名称、用户名和密码等信息。

5.如果需要配置高级选项,则在配置界面中进行相应设置。

根据实际需求,选择字符集编码、超时设置、SSL 加密等选项。

6.配置完成后,点击“测试连接”按钮,测试是否能够成功连接到目标数据库。

如果连接成功,则会显示一条成功提示信息;如果连接失败,则会显示错误信息,此时需要检查参数设置是否正确。

MySQL中的动态参数配置与调优技巧

MySQL中的动态参数配置与调优技巧MySQL是一种开源的关系型数据库管理系统,被广泛应用于各种规模的应用程序中。

为了确保数据库的性能和稳定性,合理配置和调优数据库参数是至关重要的。

本文将介绍MySQL中的动态参数配置与调优技巧,帮助您优化数据库性能。

1. 动态参数配置的概念MySQL中的动态参数配置是指可以在运行时对数据库参数进行更改和调整,而无需重启数据库服务。

这使得数据库管理员能够根据实际需求动态地调整参数以优化数据库性能。

2. 动态参数的类型MySQL中的动态参数可以分为全局动态参数和会话动态参数两种类型。

全局动态参数是指对整个数据库实例生效的参数。

它可以通过修改f配置文件或者使用SET GLOBAL命令进行设置。

全局动态参数的修改需要重启数据库服务才能生效。

会话动态参数是指只对当前会话生效的参数。

它可以通过修改session或者使用SET SESSION命令进行设置。

会话动态参数的修改在当前会话关闭后会失效。

3. 常见的动态参数配置与调优技巧3.1 innodb_buffer_pool_sizeinnodb_buffer_pool_size是InnoDB存储引擎使用的内存缓冲区大小。

适当调整这个参数的大小可以提高数据库的读取性能。

一般建议将其设置为系统内存的70-80%。

3.2 innodb_log_file_sizeinnodb_log_file_size是InnoDB存储引擎的日志文件大小。

适当调整日志文件大小可以提高数据库的写入性能。

一般建议将其设置为1GB。

3.3 max_connectionsmax_connections是MySQL服务器支持的最大并发连接数。

如果应用程序需要处理大量并发请求,可以适当增加这个参数的值。

但是要注意,增加max_connections会增加服务器资源的消耗,需要根据实际情况进行调整。

3.4 query_cache_type和query_cache_sizequery_cache_type是指查询缓存的类型,query_cache_size是指查询缓存的大小。

kettle jvm参数使用

kettle jvm参数使用Kettle是一种用于ETL(抽取、转换、加载)的开源工具,它是Pentaho数据集成套件的一部分。

在Kettle中,可以使用JVM参数来优化和调整Kettle的性能和行为。

以下是一些常见的Kettle JVM参数的使用方法和作用:1. 内存设置,可以使用-Xms和-Xmx参数来设置Kettle的初始堆大小和最大堆大小。

例如,可以使用“-Xms512m -Xmx1024m”来将初始堆大小设置为512MB,最大堆大小设置为1GB。

这有助于避免内存溢出错误,并提高Kettle的处理大数据量的能力。

2. 垃圾回收设置,可以使用-XX:+UseG1GC参数启用G1垃圾回收器,以提高垃圾回收的效率和性能。

例如,“-XX:+UseG1GC”可以用于启用G1垃圾回收器。

3. 线程设置,可以使用-XX:ParallelGCThreads参数来设置并行垃圾回收线程的数量,以充分利用多核处理器的性能。

例如,“-XX:ParallelGCThreads=4”可以设置并行垃圾回收线程为4个。

4. 类加载设置,可以使用-XX:MaxPermSize参数来设置永久代的最大大小,以避免类加载相关的问题。

例如,“-XX:MaxPermSize=256m”可以将永久代的最大大小设置为256MB。

5. 运行模式设置,可以使用-XX:+AggressiveOpts参数启用侵入式优化,以尝试提高Kettle的整体性能。

例如,“-XX:+AggressiveOpts”可以用于启用侵入式优化。

需要注意的是,使用JVM参数需要谨慎,应该根据具体的应用场景和系统配置来选择合适的参数,以达到最佳的性能和稳定性。

同时,建议在使用JVM参数之前对其作用和影响进行充分了解,以避免不必要的问题和风险。

kettle传参数

kettle传参数Kettle是一款强大的开源数据整合工具,可以用于数据抽取、转换和加载。

在Kettle的使用过程中,我们常常需要传递参数来实现数据处理的灵活性和定制化。

对于刚开始使用Kettle的用户来说,了解和掌握传递参数的方法是非常重要的。

本文将介绍Kettle传递参数的方式和具体实例,以帮助读者更好地应用Kettle工具。

一、在Kettle中传递参数的方式Kettle提供了多种方式来传递参数,下面将列举其中常用的几种方式:1. 基于环境变量:通过在Kettle环境中设置参数值,可以在作业或转换中使用。

环境变量的优势在于可以在Kettle启动前设置,且适用于整个系统。

2. 基于参数文件:可以将参数值保存到一个文件中,然后在作业或转换中引用该文件。

参数文件的优势在于可以对参数进行批量设置和修改。

3. 基于命令行参数:通过在命令行中指定参数值,可以在Kettle的启动过程中传递参数。

这种方式适用于需要在不同场景中传递不同参数值的情况。

4. 基于数据库表:将参数值存储到数据库表中,然后通过查询该表获取参数值。

这种方式适用于需要动态获取参数值的情况。

二、基于环境变量的参数传递在Kettle中使用环境变量传递参数,需要先在Kettle环境配置文件中设置参数值。

以Windows系统为例,可以在kettle.bat文件中添加如下代码:SET 参数名=参数值配置完成后,可以通过${参数名}的方式在作业或转换中引用参数值。

例如,可以在一个转换中使用参数来指定要读取的文件路径:输入文件路径:${input_path}当Kettle执行该转换时,会自动解析参数并读取指定路径下的文件。

三、基于参数文件的参数传递参数文件可以在Kettle作业或转换的“参数”窗口中进行配置。

在参数文件中,每行表示一个参数及其值,以“参数名=参数值”的形式存储。

可以使用文本编辑器创建一个参数文件,例如params.txt,内容如下:input_path=C:\data\inputoutput_path=C:\data\output然后,在Kettle的参数窗口中选择“从文件读取参数”,并指定参数文件的路径为params.txt。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1Kettle集群Kettle支持集群,以下只是简单介绍下,没有具体深入,后期需要做几个实际例子实践下。

1.1集群介绍集群允许转换以及转换中的步骤在多个服务器上并发执行。

在使用kettle 集群时,首先需要定义的是Cluster schema。

所谓的Cluster schema就是一系列的子服务器的集合。

在一个集群中,它包含一个主服务器(Master)和多个从属服务器服务器(slave)。

如下图所示。

1.2定义集群服务器要让转换是以集群方式执行,首先需要在Spoon中进行图形化的设计工作。

定义一个以集群方式运行的转换,主要包括定义cluster schema和定义转换两个步骤。

在spoon中定义集群服务器。

1.3执行转换要想以集群方式来运行转换或者作业,首先需要启动在Cluster schema中定义的主服务器和从属服务器,然后再运行转换或者作业。

1.3.1 启动子服务器子服务器其实是一个嵌入式的名为Carte的小web server。

要进行集群转换,首先需要启动cluster schema中的子服务器1.3.2运行转换Ketlte三个选项来决定转换是以什么方式来执行●本地执行: 转换或者作业将在你现在使用的JVM中运行。

●远程执行: 允许你指定一个想运行转换的远程服务器。

这需要你在远程服务器上安装Pentaho Data Integration(Kettle)并且运行Carte子服务器。

●集群方式执行: 允许你在集群环境下执行作业或者转换当选择“集群方式执行”选项是,选择以下的选项●提交转换: 分解转换并且将转换提交到不同的主服务器和从属服务器。

●准备执行: 它将在主服务器和从属服务器上执行转换的初始化阶段。

●开始执行: 它将在主服务器和从属服务器中执行实际的转换任务。

●显示转换: 显示将要在集群上执行的生成的转换(可以参看下面的分析). 2Mysql参数优化主要参照/nightelve/article/details/17393631针对目前mysql的版本及硬件配置保留重要参数的摘要,对默认值情况调整,具体见以下步骤。

目前开发机器硬件配置如下:1个CPU,8核;内存是16G软件配置:centos 6.5Mysql 5.6涉及到的主要参数有以下几种2.1back_log修改back_log参数值:默认的80back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。

也就是说,如果MySql的连接数据达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。

将会报:unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时.back_log值不能超过TCP/IP连接的侦听队列的大小。

若超过则无效,查看当前系统的TCP/IP连接的侦听队列的大小命令:cat /proc/sys/net/ipv4/tcp_max_syn_backlog目前系统为2048。

对于Linux系统推荐设置为小于512的整数。

修改系统内核参数,)/html/64/n-810764.html查看mysql 当前系统默认back_log值,命令:show variables like 'back_log'; 查看当前数量2.2max_user_connections修改max_user_connections值,由默认的0,修改为800max_user_connections=800max_user_connections是指每个数据库用户的最大连接针对某一个账号的所有客户端并行连接到MYSQL服务的最大并行连接数。

简单说是指同一个账号能够同时连接到mysql服务的最大连接数。

设置为0表示不限制。

目前默认值为:0不受限制。

这儿顺便介绍下Max_used_connections:它是指从这次mysql服务启动到现在,同一时刻并行连接数的最大值。

它不是指当前的连接情况,而是一个比较值。

如果在过去某一个时刻,MYSQL服务同时有1000个请求连接过来,而之后再也没有出现这么大的并发请求时,则Max_used_connections=1000.请注意与show variables 里的max_user_connections的区别。

默认为0表示无限大。

查看max_user_connections值show variables like 'max_user_connections';2.3thread_concurrency修改thread_concurrency值,由目前默认的10,修改为16thread_concurrency=16thread_concurrency的值的正确与否, 对mysql的性能影响很大, 在多个c pu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况。

thread_concurrency应设为CPU核数的2倍. 比如有一个双核的CPU, 那t hread_concurrency 的应该为4; 2个双核的cpu, thread_concurrency的值应为8.比如:根据上面介绍我们目前系统的配置,可知道为1个CPU,每个CPU为8核,按照上面的计算规则,这儿应为:1*8*2=16查看系统当前thread_concurrency默认配置命令:show variables like 'thread_concurrency';2.4MySQL缓存变量介绍及修改数据库属于IO密集型的应用程序,其主职责就是数据的管理及存储工作。

而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个 IO是在毫秒级别,二者相差3个数量级。

所以,要优化数据库,首先第一步需要优化的就是IO,尽可能将磁盘IO转化为内存IO。

本文先从MySQL 数据库 IO相关参数(缓存参数)的角度来看看可以通过哪些参数进行IO优化2.4.1全局缓存启动MySQL时就要分配并且总是存在的全局缓存。

目前有:key_buffer_si ze(默认值:8388608,即8M)、innodb_buffer_pool_size(默认值:134217728即:128M)、innodb_additional_mem_pool_size(默认值:8388608即:8M)、i nnodb_log_buffer_size(默认值:8388608即:8M)、query_cache_size(默认值:1048576即:1M)等五个。

这些变量值都可以通过命令如:show variables like '变量名';查看到。

2.4.1.1key_buffer_sizekey_buffer_size,本系统目前为8M,可修改为400Mkey_buffer_size=400Mkey_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),对MyISAM(MySQL表存储的一种类型,可以百度等查看详情)表性能影响最大的一个参数。

如果你使它太小,系统将开始换页并且真的变慢了。

严格说是它决定了数据库索引处理的速度,尤其是索引读的速度。

对于内存在4GB左右的服务器该参数可设置为256M或384M.怎么才能知道key_buffer_size的设置是否合理呢,一般可以检查状态值K ey_read_requests和Key_reads ,比例key_reads / key_read_requests应该尽可能的低,比如1:100,1:1000 ,1:10000。

其值可以用以下命令查得:sh ow status like 'key_read%';比如查看系统当前key_read和key_read_request值为:+-------------------+-------+| Variable_name | Value |+-------------------+-------+| Key_read_requests | 28535 || Key_reads | 269 |+-------------------+-------+可知道有28535个请求,有269个请求在内存中没有找到直接从硬盘读取索引.未命中缓存的概率为:0.94%=269/28535*100%. 一般未命中概率在0.1之下比较好。

目前已远远大于0.1,证明效果不好。

若命中率在0.01以下,则建议适当的修改key_buffer_size值。

/mysql/innodb-myisam-compare(InnoDB与MyISAM 的六大区别)/page/99810/(查看存储引擎介绍)MyISAM、InnoDB、MyISAM Merge引擎、InnoDB、memory(heap)、archive 2.4.1.2innodb_buffer_pool_sizeinnodb_buffer_pool_size(默认128M)innodb_buffer_pool_size=1024M(1G)innodb_buffer_pool_size:主要针对InnoDB表性能影响最大的一个参数。

功能与Key_buffer_size一样。

InnoDB占用的内存,除innodb_buffer_pool_s ize用于存储页面缓存数据外,另外正常情况下还有大约8%的开销,主要用在每个缓存页帧的描述、adaptive hash等数据结构,如果不是安全关闭,启动时还要恢复的话,还要另开大约12%的内存用于恢复,两者相加就有差不多21%的开销。

假设:12G的innodb_buffer_pool_size,最多的时候InnoDB就可能占用到14.5G的内存。

若系统只有16G,而且只运行MySQL,且MySQL只用InnoDB,那么为MySQL开12G,是最大限度地利用内存了。

另外InnoDB和 MyISAM 存储引擎不同, MyISAM 的 key_buffer_size 只能缓存索引键,而 innodb_buffer_pool_size 却可以缓存数据块和索引键。

适当的增加这个参数的大小,可以有效的减少 InnoDB 类型的表的磁盘 I/O 。

当我们操作一个 InnoDB 表的时候,返回的所有数据或者去数据过程中用到的任何一个索引块,都会在这个内存区域中走一遭。

相关文档
最新文档