Home Operation and Maintenance Linux Operation and Maintenance A detailed introduction to how to optimize MySQL in Linux

A detailed introduction to how to optimize MySQL in Linux

Jun 04, 2017 am 11:26 AM

This article mainly introduces the relevant information about MySQL optimization examples in Linux. Friends who need it can refer to

Linux. Detailed explanation of MySQL optimization examples

vim /etc/my.cnf The following only lists the contents of the [mysqld] paragraph in the my.cnf file. The contents of other paragraphs have little impact on the running performance of MySQL, so for the time being neglect.

[mysqld]
port = 3306
serverid = 1
socket = /tmp/mysql.sock
skip-locking
Copy after login

Avoid MySQL's external locking, reduce the chance of errors and enhance stability.

skip-name-resolve
Copy after login

Prohibit MySQL from performing DNS resolution on external connections. Using this option can eliminate the time MySQL spends on DNS resolution. However, it should be noted that if this option is turned on, all remote host connection authorizations must use IP addresses, otherwise MySQL will not be able to process connection requests normally!

back_log = 384
Copy after login

The value of the back_log parameter indicates how many requests can be stored in the stack in a short period of time before MySQL temporarily stops responding to new requests. If the system has many connections in a short period of time, you need to increase the value of this parameter, which specifies the size of the listening queue for incoming TCP/IP connections. Different operating systems have their own limits on this queue size. Attempting to set back_log higher than your operating system's limit will have no effect. The default value is 50. For Linux systems, it is recommended to set it to an integer less than 512.

key_buffer_size = 256M
Copy after login

key_buffer_size specifies the buffer size used for indexing, increase it for better index processing performance. For servers with memory around 4GB, this parameter can be set to 256M or 384M. Note: Setting this parameter value too large will reduce the overall efficiency of the server!

max_allowed_packet = 4M
thread_stack = 256K
table_cache = 128K
sort_buffer_size = 6M
Copy after login

QueryThe buffer size that can be used during sorting. Note: The allocated memory corresponding to this parameter is exclusive to each connection. If there are 100 connections, then the total allocated sort buffer size is 100 × 6 = 600MB. Therefore, it is recommended to set it to 6-8M for a server with a memory of about 4GB.

read_buffer_size = 4M
Copy after login

The buffer size that can be used by read query operations. Like sort_buffer_size, the allocated memory corresponding to this parameter is also exclusive to each connection.

join_buffer_size = 8M
Copy after login

Union queryThe buffer size that can be used for the operation is the same as sort_buffer_size. The allocated memory corresponding to this parameter is also exclusive to each connection.

myisam_sort_buffer_size = 64M
table_cache = 512
thread_cache_size = 64
query_cache_size = 64M
Copy after login

Specify the size of the MySQL query buffer. It can be observed in the MySQL console. If the value of Qcache_lowmem_prunes is very large, it indicates that there is often insufficient buffering. If the value of Qcache_hits is very large, it indicates that the query buffer is used very frequently. If the value is small, it will affect the efficiency. Then You can consider not querying the cache; Qcache_free_blocks, if the value is very large, it indicates that there are many fragments in the buffer.

tmp_table_size = 256M
max_connections = 768
Copy after login

Specify the maximum number of connection processes allowed by MySQL. If Too ManyConnections error messages often appear when accessing the forum, you need to increase the value of this parameter.

max_connect_errors = 10000000
wait_timeout = 10
Copy after login

Specify the maximum connection time for a request. For servers with about 4GB of memory, it can be set to 5-10.

thread_concurrency = 8
Copy after login

The value of this parameter is the number of server logical CPUs*2. In this example, the server has 2 physical CPUs, and each physical CPU supports H.T hyper-threading, so the actual value is 4*2 =8

skip-networking
Copy after login

Turning on this option can completely turn off MySQL's TCP/IP connection. If the WEB server accesses the MySQL database server through a remote connection, do not turn on this option! Otherwise, the normal connection will not be possible!

table_cache=1024
Copy after login

The larger the physical memory, the larger the setting. The default is 2402, adjust to 512-1024 for the best

innodb_additional_mem_pool_size=4M
Copy after login

The default is 2M

innodb_flush_log_at_trx_commit=1
Copy after login

Set to 0 is to wait until innodb_log_buffer_size will be stored uniformly after the queue is full. The default is 1

innodb_log_buffer_size=2M
Copy after login

The default is 1M

innodb_thread_concurrency=8
Copy after login

Set it to how many CPUs your server has. It is recommended that the default is generally 8

key_buffer_size=256M
#默认为218,调到128最佳
tmp_table_size=64M         
#默认为16M,调到64-256最挂
read_buffer_size=4M        
#默认为64K
read_rnd_buffer_size=16M    
#默认为256K
sort_buffer_size=32M       
#默认为256K
thread_cache_size=120     
#默认为60
query_cache_size=32M
Copy after login

It is worth noting:

Many situations require specific analysis

1. If Key_reads is too large, my should be Increase the Key_buffer_size in .cnf and keep Key_reads/Key_read_requests at least 1/100. The smaller the better.

2. If Qcache_lowmem_prunes is very large, increase the value of Query_cache_size.

The above is the detailed content of A detailed introduction to how to optimize MySQL in Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
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

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

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Difference between centos and ubuntu Difference between centos and ubuntu Apr 14, 2025 pm 09:09 PM

The key differences between CentOS and Ubuntu are: origin (CentOS originates from Red Hat, for enterprises; Ubuntu originates from Debian, for individuals), package management (CentOS uses yum, focusing on stability; Ubuntu uses apt, for high update frequency), support cycle (CentOS provides 10 years of support, Ubuntu provides 5 years of LTS support), community support (CentOS focuses on stability, Ubuntu provides a wide range of tutorials and documents), uses (CentOS is biased towards servers, Ubuntu is suitable for servers and desktops), other differences include installation simplicity (CentOS is thin)

Centos stops maintenance 2024 Centos stops maintenance 2024 Apr 14, 2025 pm 08:39 PM

CentOS will be shut down in 2024 because its upstream distribution, RHEL 8, has been shut down. This shutdown will affect the CentOS 8 system, preventing it from continuing to receive updates. Users should plan for migration, and recommended options include CentOS Stream, AlmaLinux, and Rocky Linux to keep the system safe and stable.

Detailed explanation of docker principle Detailed explanation of docker principle Apr 14, 2025 pm 11:57 PM

Docker uses Linux kernel features to provide an efficient and isolated application running environment. Its working principle is as follows: 1. The mirror is used as a read-only template, which contains everything you need to run the application; 2. The Union File System (UnionFS) stacks multiple file systems, only storing the differences, saving space and speeding up; 3. The daemon manages the mirrors and containers, and the client uses them for interaction; 4. Namespaces and cgroups implement container isolation and resource limitations; 5. Multiple network modes support container interconnection. Only by understanding these core concepts can you better utilize Docker.

How to install centos How to install centos Apr 14, 2025 pm 09:03 PM

CentOS installation steps: Download the ISO image and burn bootable media; boot and select the installation source; select the language and keyboard layout; configure the network; partition the hard disk; set the system clock; create the root user; select the software package; start the installation; restart and boot from the hard disk after the installation is completed.

How to use docker desktop How to use docker desktop Apr 15, 2025 am 11:45 AM

How to use Docker Desktop? Docker Desktop is a tool for running Docker containers on local machines. The steps to use include: 1. Install Docker Desktop; 2. Start Docker Desktop; 3. Create Docker image (using Dockerfile); 4. Build Docker image (using docker build); 5. Run Docker container (using docker run).

What are the backup methods for GitLab on CentOS What are the backup methods for GitLab on CentOS Apr 14, 2025 pm 05:33 PM

Backup and Recovery Policy of GitLab under CentOS System In order to ensure data security and recoverability, GitLab on CentOS provides a variety of backup methods. This article will introduce several common backup methods, configuration parameters and recovery processes in detail to help you establish a complete GitLab backup and recovery strategy. 1. Manual backup Use the gitlab-rakegitlab:backup:create command to execute manual backup. This command backs up key information such as GitLab repository, database, users, user groups, keys, and permissions. The default backup file is stored in the /var/opt/gitlab/backups directory. You can modify /etc/gitlab

How to mount hard disk in centos How to mount hard disk in centos Apr 14, 2025 pm 08:15 PM

CentOS hard disk mount is divided into the following steps: determine the hard disk device name (/dev/sdX); create a mount point (it is recommended to use /mnt/newdisk); execute the mount command (mount /dev/sdX1 /mnt/newdisk); edit the /etc/fstab file to add a permanent mount configuration; use the umount command to uninstall the device to ensure that no process uses the device.

How to call docker lnmp How to call docker lnmp Apr 15, 2025 am 11:15 AM

Docker LNMP container call steps: Run the container: docker run -d --name lnmp-container -p 80:80 -p 443:443 lnmp-stack to get the container IP: docker inspect lnmp-container | grep IPAddress access website: http://<Container IP>/index.phpSSH access: docker exec -it lnmp-container bash access MySQL: mysql -u roo

See all articles