key_buffer
索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8M),我的 MySQL主机有2GB内存,所以我把它改为402649088(400MB)
max_connections
允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 Too many connections 错误。 默认数值是100
max_allowed_packet
导入时一个包的最大尺寸。消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。缺省地,该值太小必能捕捉大的(可能错误)包。如果你正在使用大的BLOB列,你必须增加该值。它应该象你想要使用的最大BLOB的那么大。
table_cache
为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。MySQL对每个唯一打开的表需要2个文件描述符。默认数值是64,我把它改为512
配置Myisam表的参数:
record_buffer_size
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K),我把它改为16773120 (16M)
sort_buffer_size
每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。默认数值是2097144(2M),我把它改为 16777208 (16M)
read_buffer_size
Each thread that does a sequential scan allocates a buffer of this size for each table it scans. If you do many sequential scans, you might want to increse this value
read_rnd_buffer_size
When reading rows in sorted order after a sort, the rows are read through this buffer to avoid disk seeks. Setting the variable to a large value can improve ORDER BY performance by a lot. However, this is a buffer allocated for each client, so you should
not set the global variable to a large value. Instead, change the session variable only from within those clients that need to run large queries.
Bulk_insert_buffer_size
该参数于4.0.3中引入。MyISAM使用一个树型的缓冲区来加速大量的插入,如INSERT…SELECT,INSERT…VALUES(…), VALUES(…),…,LOAD DATA INFILE等。该参数指定了缓冲区的大小。缺省值为8M,设置为0则表示不使用该优化。如果不使用MyISAM表,则可以将其设置为0。
myisam_sort_buffer_size
配置InnoDB表的参数
innodb_buffer_pool_size
innodb_buffer_pool_size的作用就相当于key_buffer_size对于MyISAM表的作用一样。InnoDB使用该参数指定大小的内存来缓冲数据和索引。对于单独的MySQL数据库服务器,最大可以把该值设置成物理内存的80%。根据MySQL手册,对于2G内存的机器,推荐值是1G(50%)
innodb_flush_log_at_trx_commit
该值指定InnoDB记录日志的方式。如果设置为1,则每个事务提交的时候,MySQL都会将事务日志写入磁盘。如果设置为0或者2,则大概每秒中将日志写入磁盘一次。(还不清楚0和2的区别)。实际测试发现,该值对插入数据的速度影响非常大,设置为2时插入10000条记录只需要2秒,设置为0时只需要1秒,而设置为1时则需要229秒。因此,MySQL手册也建议尽量将插入操作合并成一个事务,这样可以大幅提高速度。根据MySQL手册,在存在丢失最近部分事务的危险的前提下,可以把该值设为0。
innodb_log_file_size
The size of the buffer that InnoDB uses to write to the log files on disk. Sensible values range from 1MB to 8MB. The default is 1MB. A large log buffer allows large transactions to run without a need to write the log to disk before the transactions commit.
Thus, if you have big transactions, making the log buffer larger will save disk I/O。根据MySQL手册,推荐值是innodb_buffer_pool_size的25%
注意:在重新设置该值时,好像要把原来的文件删除掉。
innodb_log_buffer_size
The size of the buffer that InnoDB uses to write to the log files on disk. Sensible values range from 1MB to 8MB. The default is 1MB. A large log buffer allows large transactions to run without a need to write the log to disk before the transactions commit.
Thus, if you have big transactions, making the log buffer larger will save disk I/O. 根据MySQL手册,推荐值是8M。
innodb_additional_mem_pool_size
该参数指定InnoDB用来存储数据字典和其他内部数据结构的内存池大小。缺省值是1M。通常不用太大,只要够用就行,应该与表结构的复杂度有关系。如果不够用,MySQL会在错误日志中写入一条警告信息。根据MySQL手册,对于2G内存的机器,推荐值是20M。
thread_cache_size
可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。我把它设置为 80
query_cache_size
查询缓冲,MySQL将SELECT语句和查询结果存放在缓冲区中,今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。通过检查状态值Qcache_*,可以知道query_cache_size设置是否合理(上述状态值可以使用SHOW STATUS LIKE ‘Qcache%’获得)。如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,如果Qcache_hits的值也非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小;如果Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。与查询缓冲有关的参数还有query_cache_type、query_cache_limit、query_cache_min_res_unit。
query_cache_type指定是否使用查询缓冲,可以设置为0、1、2,该变量是SESSION级的变量。query_cache_limit指定单个查询能够使用的缓冲区大小,缺省为1M。query_cache_min_res_unit是在4.1版本以后引入的,它指定分配缓冲区空间的最小单位,缺省为4K。检查状态值Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多,这就表明查询结果都比较小,此时需要减小 query_cache_min_res_unit。
query_cache_limit
定单个查询能够使用的缓冲区大小,缺省为1M
query_cache_min_res_unit
指定分配缓冲区空间的最小单位,缺省为4K
检查状态值Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多,这就表明查询结果都比较小,此时需要减小query_cache_min_res_unit。
thread_concurrency
设置为你的cpu数目x2,例如,只有一个cpu,那么thread_concurrency=2
skip-innodb
去掉innodb支持
skip-bdb
去掉bdb事务型表支持
skip-name-resolve
解决mysql不能远端连线的问题
max_allowed_packet
信息交换中使用信息包的允许大小(如:导入表)
附一个配置
分享到:
相关推荐
### MySQL my.cnf配置文件详解 #### 概述 `my.cnf` 是 MySQL 数据库管理系统的核心配置文件之一,用于定义 MySQL 各个组件的工作参数。通过对 `my.cnf` 文件的理解与设置,可以实现对 MySQL 服务的有效管理和优化...
它使用客户端-服务器模型,其配置文件***f(或my.ini,在Windows系统中)对于数据库管理员(DBA)来说是管理MySQL服务器性能和行为的关键工具。文件中的每个参数都可以影响数据库的运行方式和性能,因此正确配置这些...
通过对my.cnf/my.ini配置文件的各项关键参数进行中文注释与解析,帮助DBA及运维人员更好地理解每个配置项的作用及其对MySQL性能的影响。 #### 关键配置项详解 ##### 1. **[client]** - **port=3306**:设定MySQL...
MySQL 教程 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库 MySQL8.0数据库的一般配置 Linux环境的配置文件
以下是对my.cnf配置文件中关键参数的详细解释: 1. `[client]`部分: - `port = 3306`:定义了MySQL服务的默认端口,大多数情况下为3306。 - `socket = /data/3306/mysql.sock`:设置了客户端连接MySQL服务器时...
MySQL 服务性能优化 My.cnf 配置说明详解(16G 内存) MySQL 是当前使用最广泛的开源数据库管理系统之一,高性能的 MySQL 服务器配置是每个开发者和 DBA 都需要关心的问题。下面是 MySQL 服务性能优化的 My.cnf ...
在Linux环境中,MySQL的主要配置文件是`my.cnf`,它是数据库服务器启动时读取的配置文件,用于设定各种参数和选项,以优化数据库的性能、安全性以及资源使用。这份文档将深入探讨`my.cnf`的结构、主要配置项及其作用...
### MySQL中的my.cnf配置文件详解 在MySQL的配置与管理过程中,`my.cnf`文件扮演着极其重要的角色。该文件通常包含了MySQL服务器启动时所遵循的各种参数设置,包括但不限于内存分配、缓存大小、日志记录以及安全...
### my.cnf配置详解及设置建议 #### 一、引言 `my.cnf`是MySQL数据库管理系统中的一个核心配置文件,它包含了MySQL服务器启动时所遵循的各种参数设定。通过合理地配置这些参数,可以显著提升数据库性能、增强数据...
MySQL是一款广泛使用的开源关系型数据库管理系统,在实际部署和维护过程中,通过对`my.cnf`配置文件的合理调整可以极大地优化MySQL的性能和稳定性。本篇文章将深入探讨`my.cnf`配置文件中的关键参数及其作用,并提供...
MySQL 的配置文件 my.cnf 是 MySQL 服务器的核心配置文件,其中包含了 MySQL 服务器的大部分配置参数。通过对 my.cnf 文件的配置,可以对 MySQL 服务器的性能和安全性产生重要的影响。在本文中,我们将对 my.cnf ...
mysql5.7数据库配置文件my.cnf,常用参数及注释详解,用于安装好的Mysql数据库文件,5.7版本通用
MySQL的配置文件my.cnf是管理系统性能的关键工具,它包含了各种参数设置,用于优化数据库的运行效率和稳定性。本文将详细解析MySQL 5.5.13版本中的一些重要参数,帮助你理解如何进行配置文件的优化。 首先,配置...
### MySQL配置文件my.cnf详解 #### 一、概述 MySQL是目前最流行的关系型数据库管理系统之一,在实际应用中,为了提高性能与安全性,我们往往需要对MySQL进行配置。而`my.cnf`文件就是MySQL的主要配置文件。通过...
Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察...