skip-locking
key_buffer = 384M
max_allowed_packet = 3M
read_buffer_size = 20M
myisam_sort_buffer_size = 128M
query_cache_size = 64M
thread_concurrency = 8
set-variable=back_log=1024
set-variable=interactive_timeout=7200
set-variable=wait_timeout=7200
set-variable=key_buffer_size=16773120
set-variable=max_connections=2048
set-variable=record_buffer=16773120
set-variable=sort_buffer=16773120
set-variable=table_cache=512
set-variable=thread_cache_size=80
set-variable=max_connect_errors=2048
set-variable=log_slow_queries=ON
set-variable=delay_key_write=ON
set-variable=join_buffer_size=16773120
skip-locking
避免MySQL的外部锁定,减少出错几率增强稳定性。
key_buffer_size:
索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8M),我的MySQL主机有2GB内存,所以我把它改为402649088(400MB)。
max_allowed_packet
read_buffer_size=6M
读查询操作所能使用的缓冲区大小,该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。
myisam_sort_buffer_size
query_cache_size
指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察:
# > SHOW VARIABLES LIKE '%query_cache%';
# > SHOW STATUS LIKE 'Qcache%';
# 如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;
如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。
thread_concurrency
该参数取值为服务器逻辑CPU数量×2,在本例中,服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8
back_log:
要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时,就要加大 back_log 的值了。默认数值是50,我把它改为500。
interactive_timeout
服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。 默认数值是28800,我把它改为7200。
wait_timeout
服务器在关闭它之前在一个连接上等待行动的秒数。 默认数值是28800,我把它改为7200。
key_buffer_size
索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8M),我的MySQL主机有2GB内存,所以我把它改为402649088(400MB)。
max_connections:
允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 Too many connections 错误。 默认数值是100,我把它改为1024 。
record_buffer:
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K),我把它改为16773120 (16M)
sort_buffer:
每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。默认数值是2097144(2M),我把它改为 16777208 (16M)。
table_cache:
为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。MySQL对每个唯一打开的表需要2个文件描述符。默认数值是64,我把它改为512。
thread_cache_size:
可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。我把它设置为 80。
max_connect_errors
允许的中断连接请求的数量。当超出max_connect_errors规定的连接请求时,mysqld将认为某处出错(例如,某人正试图插入),并屏蔽主机的进一步连接请求,直至执行了mysqladmin flush-hosts命令,或发出了FLUSH HOSTS语句为止。
log_slow_queries
开启慢查询日志( slow query log ) 慢查询日志对于跟踪有问题的查询非常有用。它记录所有查过long_query_time的查询,如果需要,还可以记录不使用索引的记录。
join_buffer_size
联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享!
SHOW STATUS LIKE 'Qcache%';
Qcache queries in cache 12737 表明目前缓存的条数
Qcache inserts 20649006
Qcache hits 79060095 看来重复查询率还挺高的
Qcache lowmem prunes 617913 有这么多次出现缓存过低的情况
Qcache not cached 189896
Qcache free memory 18573912 目前剩余缓存空间
Qcache free blocks 5328 这个数字似乎有点大 碎片不少
Qcache total blocks 30953
分享到:
相关推荐
### Linux下MySQL 8.0安装与配置指南 #### 标题解读 - **Linux安装MySQL文档**:本文档旨在指导用户如何在Linux操作系统上安装MySQL数据库服务。 #### 描述解读 - **Linux安装MySQL文档**:这进一步强调了文档的...
在Linux系统中,安装MySQL数据库时可能会遇到版本冲突的问题,特别是在尝试安装新版本而系统中已有旧版本的情况下。本文档详细介绍了如何解决这个问题。 首先,要确定系统中已安装的MySQL版本,可以使用`rpm`命令...
Linux 下 Apache+PHP+Mysql 安装与配置 ...总结,文章介绍了 Linux 下 Apache+PHP+Mysql 的安装和配置过程,包括 Apache 的安装和配置、MySQL 的安装和配置,并且对安装过程中的注意事项进行了说明。
- 如果在没有网络连接的情况下安装 MySQL,可以借助于文件交互软件如 xftp6 或 MobaXterm 来传输安装包。 - 可以通过百度网盘提供的链接下载所需的 MySQL 安装包,链接地址为:...
以下是一个详细的MySQL在Linux上安装的步骤说明: 1. **解压MySQL安装包**:首先,你需要下载MySQL的tarball(压缩文件),通常为`.tar.gz`格式。使用`tar`命令解压缩文件,例如:`tar -zxvf mysql-5.6.21.tar.gz`...
本文将详细介绍 Linux 环境下安装 MySQL 5.7.29 的步骤,以及相关的配置和说明。 一、下载和安装 MySQL 首先,需要从 MySQL 官方网站下载相应的安装包。对于 Linux 平台,需要下载通用版本的安装包,例如 mysql-...
以上步骤详细介绍了如何在Linux环境下安装和配置MySQL 5.5.10的过程,包括从安装cmake开始到最终完成MySQL的安装和配置。这些步骤可以帮助读者更好地理解和掌握在Linux环境下搭建MySQL服务器的整个流程。
本文将详细讲解在Linux环境下安装MySQL的步骤,包括准备工作、安装过程、配置以及基本的验证。 首先,我们需要确保Linux系统已经更新到最新版本,这可以通过运行以下命令完成: ```bash sudo apt-get update sudo ...
在Linux环境下,MySQL数据库系统的二进制安装与主从复制是常见的运维操作,这对于系统管理员和数据库管理员来说至关重要。下面将详细介绍Linux上MySQL的二进制安装步骤以及如何配置主从复制。 一、Linux下MySQL二...
### Linux 下 MySQL Cluster 集群搭建...以上步骤详细介绍了 MySQL Cluster 在 Linux 系统下的基本概念、软件下载与安装过程以及管理节点的基本配置。接下来可根据实际需求进一步调整配置参数,实现更复杂的集群架构。
在Linux环境下安装和配置MySQL是一项基础且重要的任务,MySQL是一个流行的开源关系型数据库管理系统,广泛应用于Web应用程序。本文将详细讲解如何在Linux系统上安装MySQL的服务器端和客户端,并进行基本的配置。 ...
以下是对Linux下MySQL安装配置的详细步骤的解析: 首先,你需要从MySQL官方网站(http://www.mysql.com/downloads/mysql-4.0.html)下载适合你系统版本的安装文件。在例子中,提供了两个RPM文件:MySQL-server和...
本文将深入探讨在Linux环境下安装和使用MySQL 5.5.58 64位版本的相关知识点。 首先,MySQL 5.5.58是MySQL的一个稳定版本,它在性能、稳定性和安全性上都有所提升。这个版本在发布时包含了多项改进,例如优化查询...
在Linux环境下安装和配置MySQL是IT运维工作中常见的任务。MySQL是一种流行的开源关系型数据库管理系统,由瑞典的Tcx公司开发,以其高效、稳定和易用性著称。在Linux系统中,MySQL通常被用于存储和管理各种应用程序的...
一般而言,可以使用Yum仓库进行MySQL的安装与升级,特别是在Linux/Unix平台下。安装过程中,用户需要配置合适的存储引擎,并设置好必要的参数,比如最大连接数、缓冲池大小等。此外,官方文档中也提供了针对Windows...
本文将详细介绍如何在Linux环境下安装MySQL,以满足日常开发和运维需求。 首先,确保你的Linux系统已经更新到最新版本,这可以通过运行`sudo apt-get update`(对于基于Debian的系统)或`yum update`(对于基于RPM...
在Linux操作系统中搭建Java开发环境,通常涉及到几个关键组件的安装和配置,包括JDK(Java Development Kit)、Tomcat(一个流行的Java应用服务器)、Eclipse(一个强大的Java集成开发环境)以及MySQL(一种广泛使用...
描述部分与标题相同,说明本文档的核心内容是介绍在Linux环境下安装MySQL数据库5.6.4版本的过程。 标签为“技术及资料”,表明这个文档属于技术操作指导类资料,适合需要进行此类操作的技术人员或开发者参考。 从...