How to enable mysql query slow log
1. What is MySQL slow query log
MySQL slow query log is a performance analysis tool that comes with MySQL and is used to record queries that exceed a specified time threshold. Query request. The slow query log records different performance indicators of each query, such as the required time, number of executions, and execution plan. Developers can use these metrics to identify queries that need optimization to improve efficiency and take appropriate action.
By default, MySQL's slow query log is usually not enabled and requires manual configuration to enable it. Querying the slow log can be enabled by setting parameters in the MySQL configuration file (my.cnf). The following is an example configuration for querying the slow log:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
log_queries_not_using_indexes = 1
long_query_time = 2
Among them, the slow_query_log parameter is used to enable slow query logs, the slow_query_log_file parameter specifies the location of the slow query log file, the log_queries_not_using_indexes parameter is used to log unused information of slow query indexes, and the long_query_time parameter Used to specify the query timeout, in seconds.
2. How to enable MySQL slow query log
By default, MySQL 5.7 and above enable slow query log. Manual configuration is necessary to enable the query slow log feature, especially for older versions of MySQL such as MySQL 5.6 or 5.5, etc. The following are the detailed steps to enable MySQL query slow log:
Open the MySQL configuration file
By default, the MySQL configuration file is in the Linux system The path in is /etc/my.cnf. In Windows systems, the configuration file is usually located in C:Program FilesMySQLMySQL Servermy.ini or C:ProgramDataMySQLMySQL Servermy.ini. Open the file with your favorite editor.
Enable slow query log
Find the following line in the configuration file:
slow_query_log = 0
Remove the comment symbol # from this line and change the value to 1.
slow_query_log = 1
Specify the slow log file path
Find the following line:
slow_query_log_file = /var/log/mysql/mysql-slow.log
Remove the comment symbol # from the line and change the file path to the path you want.
slow_query_log_file = /var/log/mysql/mysql-slow.log
Configure query timeout
Find the following Line:
long_query_time = 10
Remove the comment symbol # from this line and change the value to your desired query timeout threshold in seconds.
long_query_time = 2
Configure the switch for index unused information
Find the following line:
log_queries_not_using_indexes = 0
Remove the comment symbol # from this line and change the value to 1 to enable unused slow query indexes in logging operations.
log_queries_not_using_indexes = 1
Save and close the configuration file
Check whether the configuration file has been saved and close the file.
Restart MySQL service
Use the following command to restart the MySQL service:
sudo systemctl restart mysqld
3. How to view the MySQL slow query log
Once you have enabled the MySQL slow query log, the slow query log will automatically record the query information and store it in the specified slow query log file . You can use the following command to view the slow query log:
sudo tail -n 100 /var/log/mysql/mysql-slow.log
Use this command to display the latest 100 slow query logs Record. You can also change the number of rows displayed to your liking. The output will include the time required to execute the slow query and all data tables and subqueries involved in the query.
If you need to query slow logs by date filtering, you can use grep and awk to filter the logs on Linux, as shown below:
grep "21-Jun-2022" /var/log/ mysql/mysql-slow.log | awk '{print substr($2,0,length($2)-1)" "$3$4" "$5}' | less
This command will output in June 2022 All timestamps containing slow query logs on the 21st of the month.
4. How to analyze and optimize MySQL query slow logs
After collecting enough MySQL query slow logs, you can analyze them to determine the queries that need to be optimized. . Here are some best practices for analyzing and optimizing query performance:
Parsing query slow logs with pt-query-digest
pt -query-digest is an open source software that can help you analyze MySQL query slow logs and optimize for problems that arise in them. Here are the steps to install and use pt-query-digest:
Install Percona Toolkit
On CentOS 7, you can install it using the following command .
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install percona-toolkit
Parse and query slow logs
You can use the following command to use pt-query-digest to parse and query slow logs.
pt-query-digest /var/log/mysql/mysql-slow.log > slow-query-analysis.out
Analysis query slow log
Use pt-query-digest to get a detailed analysis report on slow query logs. You can look for the queries that occur most frequently and have the longest timeouts and identify those that need optimization.
Using index fields
The MySQL query slow log records all queries that did not successfully use the index. You can use this information to determine which queries did not. Use appropriate field indexes to speed up queries. Adding indexes in MySQL can greatly optimize query performance. It is important to note that adding too many indexes may reduce query performance because it may increase the cost of query requests and update operations.
Optimize query statements
The query slow log can tell you which queries need to be optimized. If the execution time exceeds the set threshold, the query will be recorded in the log file. You can check the query statement and try using different query statements to optimize execution speed.
Use caching mechanism
The caching mechanism can greatly improve the query speed. If the query results are already stored in the cache, you can avoid query execution and resource overhead and return the results directly. Caching mechanisms can be implemented by using cache providers such as Redis and Memcached.
Adjust MySQL server parameters
The performance of MySQL server can be optimized by adjusting various parameters to optimize the entire database. These parameters include MySQL cache size, connection limit, query timeout, etc. By adjusting these parameters, database service performance can be optimized for specific queries.
The above is the detailed content of How to enable mysql query slow log. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The main role of MySQL in web applications is to store and manage data. 1.MySQL efficiently processes user information, product catalogs, transaction records and other data. 2. Through SQL query, developers can extract information from the database to generate dynamic content. 3.MySQL works based on the client-server model to ensure acceptable query speed.

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

MySQL and phpMyAdmin are powerful database management tools. 1) MySQL is used to create databases and tables, and to execute DML and SQL queries. 2) phpMyAdmin provides an intuitive interface for database management, table structure management, data operations and user permission management.

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

I encountered a tricky problem when developing a small application: the need to quickly integrate a lightweight database operation library. After trying multiple libraries, I found that they either have too much functionality or are not very compatible. Eventually, I found minii/db, a simplified version based on Yii2 that solved my problem perfectly.

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

The basic operations of MySQL include creating databases, tables, and using SQL to perform CRUD operations on data. 1. Create a database: CREATEDATABASEmy_first_db; 2. Create a table: CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY, titleVARCHAR(100)NOTNULL, authorVARCHAR(100)NOTNULL, published_yearINT); 3. Insert data: INSERTINTObooks(title, author, published_year)VA

When developing an e-commerce website using Thelia, I encountered a tricky problem: MySQL mode is not set properly, causing some features to not function properly. After some exploration, I found a module called TheliaMySQLModesChecker, which is able to automatically fix the MySQL pattern required by Thelia, completely solving my troubles.
