Use MySQLSlowLog to solve the problem of high usage of MySQLCPU _ MySQL

Source: Internet
Author: User
Tags high cpu usage
Use MySQLSlowLog to solve the problem of high usage of MySQLCPU bitsCN.com

Use MySQL Slow Log to solve the high CPU usage problem of MySQL

In a Linux VPS system, sometimes MySQL occupies a high CPU, resulting in a high system load. This is probably because the execution time of an SQL statement is too long. Optimizing this SQL statement or optimizing the index of a table referenced by this SQL statement can solve the problem.

But how can we find out which SQL statement has been executed for a long time? You can refer to the MySQL Slow Log for details.

First, find the MySQL configuration file my. cnf. the configuration for enabling slow queries varies with mysql versions.

For mysql 5.0

[Mysqld]

Long_query_time = 1

Log-slow-queries =/var/log/mysql/slow. log

For mysql 5.1

[Mysqld]

Long_query_time = 1

Slow_query_log = 1

Slow_query_log_file =/var/log/mysql/slow. log

Long_query_time indicates how long the SQL statement will be logged after execution, which is 1 second.

Log-slow-queries and slow_query_log_file

Turn on the above parameters and shut down after a period of operation, saving the trouble of affecting the production environment.

The following is the analysis. the file name here is/var/log/mysql/slow. log.

Mysqldumpslow-help first, mainly used

-S ORDER what to sort by (t, at, l, al, r, ar etc), 'at' is default

-T NUM just show the top n queries

-G PATTERN grep: only consider into Ts that include this string

-S is the order, which indicates that the write is not detailed enough, mainly including

C, t, l, r, and ac, at, al, ar are sorted by the number of queries, time, lock time, and number of returned Records, respectively, the reverse chronological order of a is added.

-T indicates the top n, that is, the number of data records returned.

-G. you can write a regular expression matching later. it is case insensitive.

Mysqldumpslow-s c-t 20/var/log/mysql/slow. log

Mysqldumpslow-s r-t 20/var/log/mysql/slow. log

The preceding command shows the 20 most frequently accessed SQL statements and the 20 most returned SQL statements in the record set.

Mysqldumpslow-t 10-s t-g "left join"/var/log/mysql/slow. log

Return the first 10 SQL statements containing the left join according to the time.

With this tool, you can find out which SQL statements are performance bottlenecks and optimize them, such as adding indexes and implementing the application.

BitsCN.com

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.