search
HomeDatabaseMysql Tutorial MySQL 5.5 服务器变量详解(二)

innodb_adaptive_flushing={ON|OFF}设定是否允许MySQL服务器根据工作负载动态调整刷写InnoDBbufferpool中的脏页的速率。动态调整刷写速率的目的在于避免出现IO活

innodb_adaptive_flushing={ON|OFF}

设定是否允许MySQL服务器根据工作负载动态调整刷写InnoDB buffer pool中的脏页的速率。动态调整刷写速率的目的在于避免出现IO活动尖峰。默认值为ON。作用范围为全局级别,可用于选项文件,属动态变量。

 

innodb_adaptive_hash_index={ON|OFF}

设定是否启用InnoDB的自适应hash索引。基准测试结果显示,自适应hash索引并非对所有工作负载都有益,因此需要根据实际应用场景的测试结果选择更合适的值。此特性默认已启用,可以通过命令行选项--skip-innodb_adaptive_hash_index将其禁用。作用范围是全局,可用于选项文件,属动态变量。

 

innodb_additional_mem_pool_size={2097152 .. 4294967295}

设定innodb存储引擎为了存储数据字典和其它内部数据结构的内在池大小,单位是字节。表的个数越多,此参数的值就应该设定的越大;当InnoDB用完此内存池的空间,它就会向操作系统申请内存空间,并将向错误日志记录警告信息。默认大小是8MB。作用范围为全局,可用于选项文件,属非动态变量。

 

innodb_autoextend_increment={1 .. 1000}

当共享表空间没有多余的存储空间时,如果其允许自动增长,此变量可用于设定其单次增长的空间大小,单位是MB,默认值是8。设置了变量innodb_file_per_table的值为1时InnoDB会为每张表使用一个单独的表空间文件,而innodb_autoextend_increment变量不会对此种表空间产生影响。作用范围为全局级别,可用于选项文件,属动态变量。

 

innodb_autoinc_lock_mode={0|1|2}

设定用于生成“自动增长(auto_increment字段)”值的锁模型。其可接受的值有0、1和2,分别用于表示"traditional"、"consecutive"和"interleaved"锁模型。默认值为1。作用范围为全局,可用于选项文件,属非动态变量。

 

innodb_buffer_pool_instances=#

设定将InnoDB的buffer pool分隔为多少个区域。对于有着数GB空间的buffer pool来说,将其分隔为多个区域可以降低不同的线程对缓存页面的读写操作时资源争用系数,进行增强其并发能力。在buffer pool中,读取或存入页面时所选择的区域是基于hash算法随机进行的。每个buffer pool管理自己的空闲列表、列表刷写、LRU以及其它跟buffer pool相关的数据结构,并通过各自的互斥锁进行保护。

此变量仅在变量innodb_buffer_pool_size的值大于1G时才能发挥功用,缓冲池的整体空间将由各buffer pool实例分割使用。出于最佳效用的目的,建议配合使用innodb_buffer_pool_instances和innodb_buffer_pool_size变量以使得每个buffer pool实例的都至少有1G的空间。作用范围为全局,可用于选项文件,属非动态变量。

 

innodb_buffer_pool_size=#

设定InnoDB缓存表数据和索引的内存缓冲区大小,单位是字节。其默认值为128MB,最大值依赖于CPU架构。在一个较繁忙的服务器上,美国空间,当缓冲池(buffer pool)大于1G时,设定innodb_buffer_pool_instances的值大于1可提其升伸缩能力。innodb_buffer_pool_size变量的值越大,MySQL服务器完成数据访问时就需要越少的IO,因此,在一个有够较大内存且为MySQL服务专用的服务器上,可以将此值设置为物理内存的80%。但如果出现如下情况,建议缩小此变量的值:(1)物理内存资源紧张导致内存页面换出;(2)InnoDB会为缓冲和控制结构(buffers and control structures)预留额外的内存,因此事实上其占用的内存空间可能会比指定的数值大10%左右,这不可能超出对内存资源分配的预估;(3)内存地址空间必须连续,这在基于DLL库使用特殊地址空间的Windows系统上可能会出现意外情况;(4)缓冲池的初始化所需要时长与为其指定的空间大小成正比,例如有10G缓冲池的x86_64的Linux系统上,初始化时间大约要6秒钟。作用范围为全局,可用于选项文件,属非动态变量。

 

innodb_change_buffering=#

当在表上执行INSERT、UPDATE或DELETE操作时,索引中尤其是第二索引中的数据未必按序存储,这就可能引发随机IO以完成第二索引的更新操作。此变量用来设定InnoDB是否启用修改缓冲(change buffering)以及使用何种类型的修改缓冲。修改缓冲是一种优化方式,它能够通过延迟写入操作至第二索引将IO操作转换为顺序模式。其接受的值有inserts(缓冲insert操作)、deletes(缓冲delete-marking操作)、changes(缓冲insert和delete-marking操作)、purges(缓冲purge操作)、all(缓冲insert、delete-marking和purge操作)和none(不缓冲任何操作)。默认值是all。MySQL 5.5.4之前的版本只接受inserts和none两种值。作用范围为全局,可用于选项文件,属动态变量。

 

innodb_checksums={ON|OFF}

InnoDB能够使用校验和(checksum)来验正从磁盘读取的所有页面数据的完整性,从而提高对硬件或数据文件损坏的容错能力。默认为启用,然而,在少数情况下或许需要禁用这种特性,这可以通过使用--skip-innodb-checksums命令行选项实现。作用范围为全局,可用于选项文件,属非动态变量。

 

innodb_commit_concurrency={0 .. 1000}

设定InnoDB可同时运行的“提交”操作线程的数量。0表示无限制。此变量不能在运行时将其从“零值”修改为“非零值”,但可以从一个“非零值”修改为其它值。作用范围为全局,可用于选项文件,属非动态变量。

 

innodb_concurrency_tickets=#

在一个线程进入(enter)InnoDB时,其将会获取一定数量的“自由卷轴”(free tickets)并凭这些卷轴自由出入InnoDB(即免检),直到其卷轴耗尽;而后的线程将被置于等待队列中,并可能需要再次接受并发上限限制检查。此变量则正是用于设定可同时进入InnoDB的线程并发数,即线程的“自由卷轴”数量。默认值是500。作用范围为全局,可用于选项文件,属动态变量。

 

innodb_data_file_path=IBDATA_FILE

指定InnoDB的各个数据文件及其大小,文件多于一个时彼此间用分号隔开。数据文件路径可以为相对路径,其相对于innodb_data_home_dir变量所指向的目录;而文件大小的表示可以以K(KB)、M(MB)、G(GB)为单位,但这些文件的大小之和至少要达到10MB。在没有显式设定innodb_data_file_path变量的情况下,MySQL服务器会在数据目录中自动创建一个可自动增长、初始大小为10MB的名为ibdata1的数据文件。单个数据文件的大小上限取决于操作系统,这意味着可以使用操作系统所支持的最大单个文件大小以为其数据文件的体积上限。InnoDB还支持使用裸设备作为数据文件。作用范围为全局,可用于选项文件,属非动态变量。

 

innodb_data_home_dir=/PATH/TO/DIR

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!