Enable Logging of Slow Queries (Slow Query Log) in MySQL Database Enable Logging of Slow Queries (Slow Query Log) trong cơ sở dữ liệu MySQL
One of the main requirements for a fast Một trong những yêu cầu chính cho một nhanh web server web server is to has efficient and effective SQL statements or queries that are optimized. là có hiệu quả và hiệu quả phát biểu hoặc các truy vấn SQL được tối ưu hóa. Any non-optimal SQL (Structured Query Language) commands or statements that take too long or lengthy time to execute will use up a lot of system resources, causing Bất kỳ không tối ưu SQL (Structured Query Language) lệnh hoặc báo cáo mà phải mất thời gian quá dài hoặc dài để thực thi sẽ sử dụng lên rất nhiều tài nguyên hệ thống, gây ra MySQL MySQL database to run slower, and then more and more queries backlogs queuing up, and when connection limit is reached, visitors are been denied or refused connection. cơ sở dữ liệu để chạy chậm hơn, và sau đó truy vấn càng nhiều backlogs xếp hàng lên, và khi kết nối được đạt đến giới hạn, khách truy cập được kết nối bị từ chối hoặc từ chối. In worst case scenario, your web server will go down as well, or continuously underperform. Trong kịch bản trường hợp xấu nhất, máy chủ web của bạn sẽ đi xuống là tốt, hoặc liên tục underperform. The case is especially true when you are using MyISAM table type which uses table-level locking instead of row-level locking in a high traffic website. Các trường hợp đặc biệt đúng khi bạn đang sử dụng loại bảng MyISAM mà dùng bảng cấp khóa thay vì hàng cấp khóa trong một trang web lưu lượng truy cập cao.
Sometime, a single SQL query may be the cause of all the server's problems. Thỉnh thoảng, một truy vấn SQL duy nhất có thể là nguyên nhân của vấn đề của tất cả các máy chủ. MySQL has built-in functionality to capture slow query log or identify queries that are not optimal and take a long time to finish, which allows you to log all slow running queries which took over defined number of seconds to execute by MySQL database engine to a file. MySQL đã được xây dựng trong các chức năng để nắm bắt truy vấn chậm đăng nhập hoặc nhận biết các truy vấn mà không phải là tối ưu và mất nhiều thời gian để hoàn thành, cho phép bạn đăng nhập tất cả các truy vấn mà chạy chậm mất số trên được xác định của giây để thực hiện bởi động cơ sở dữ liệu MySQL để một tệp. Slow query log is not activated or on by default MySQL installation, thus it is one of the less-used logs. Chậm đăng nhập truy vấn không được kích hoạt hoặc do cài đặt mặc định MySQL, vì thế nó là một trong số ít được sử dụng các bản ghi.
To enable slow query log, simply add the following line to MySQL configuration file (my.cnf or my.ini), and then restart the MySQL server: Để kích hoạt tính năng đăng nhập truy vấn chậm, chỉ cần thêm dòng sau vào file cấu hình MySQL (my.cnf hoặc my.ini), và sau đó khởi động lại máy chủ MySQL:
log-slow-queries log-truy vấn chậm
or hoặc
log-slow-queries = [path to the log file] log-slow-queries = [đường dẫn đến tập tin đăng nhập]
Replace [path to the log file] with actual path to the slow query log file you want the MySQL to write the log to, which is the optional value. Thay thế [đường dẫn đến tập tin đăng nhập] với đường dẫn thực tế để truy vấn chậm đăng nhập tập tin bạn muốn MySQL để viết nhật ký vào, đó là giá trị tùy chọn.
Or you can start mysqld with with the –log-slow-queries[=file_name] option to enable the slow query log. Hoặc bạn có thể bắt đầu với mysqld với log--slow-queries [= file_name] tùy chọn để kích hoạt đăng nhập truy vấn chậm. In both syntaxes, if not log file name is specified, the default name is host_name -slow.log, stored in the MySQL data file directory. Trong cả hai cú pháp, nếu không đăng nhập tên tập tin được chỉ định, tên mặc định là host_name-slow.log, được lưu trữ trong thư mục tập tin dữ liệu MySQL. If a filename is given, but not as an absolute pathname, the server writes the file in the data directory too. Nếu một tên tập tin được cho, nhưng không phải như một pathname tuyệt đối, máy chủ viết các tập tin trong thư mục dữ liệu quá.
After enabling slow query log, MySQL will create, capture and log to the log file with all SQL statements that took more than long_query_time seconds to execute, which is by default set to 10 seconds. Sau khi đăng nhập cho phép truy vấn chậm, MySQL sẽ tạo, nắm bắt và đăng nhập vào tập tin đăng nhập với tất cả các lệnh SQL mà đã hơn giây long_query_time để thực thi, mà là do thiết lập mặc định là 10 giây. The time to acquire the initial table locks is not counted as execution time. Thời gian để có được khóa bảng ban đầu không được tính là thời gian thực hiện. mysqld writes a statement to the slow query log after it has been executed and after all locks have been released, so log order might be different from execution order. mysqld writes một tuyên bố để đăng nhập truy vấn chậm sau khi nó đã được thực hiện và sau khi tất cả các ổ khóa đã được phát hành, do đó, đăng nhập để có thể khác với thứ tự thực hiện.
You can then examine all the SQL queries that took longer than the pre-defined number of seconds (10 seconds by default) in the host_name -slow.log, and then take the necessary steps to optimize the SQL statements. Sau đó bạn có thể kiểm tra tất cả các truy vấn SQL mà đã dài hơn tiền xác định số giây (10 giây theo mặc định) trong các host_name-slow.log, và sau đó thực hiện các bước cần thiết để tối ưu hóa các lệnh SQL. The slow query log will tell you about what was time the query completed, how long the query took to run, how long it took to secure its locks, how many rows were sent back as a result, how many rows were examined to determine the result, which database was used, and the actual query itself. Nhật ký truy vấn chậm sẽ cho bạn biết về thời gian truy vấn hoàn thành, đã được những gì trong bao lâu các truy vấn đã chạy, mất bao lâu để an toàn khóa của nó, bao nhiêu hàng đã được đưa trở lại như là kết quả, bao nhiêu hàng đã được kiểm tra để xác định Kết quả, trong đó cơ sở dữ liệu đã được sử dụng, và truy vấn thực tế bản thân. But bear in mind that a SQL query contained in the log may have already optimum, but executed slowly due to the system resources been used up by the actual slow statement that need to be fine tuned. Nhưng nhớ rằng một truy vấn SQL chứa trong nhật ký này có thể đã được tối ưu, nhưng thực hiện chậm do các nguồn tài nguyên hệ thống được sử dụng hết bởi các báo cáo chậm thực tế cần được tinh chỉnh.
IMPORTANT : The page is machine translated and provided "as is" without warranty. Quan trọng: Sửa là máy dịch và cung cấp "như là" không có bảo hành. Machine translation may be difficult to understand. Máy dịch thuật có thể khó hiểu. Please refer to Vui lòng tham khảo original English article bản gốc tiếng Anh bài viết whenever possible. bất cứ khi nào có thể.
Related Articles Bài viết liên quan
- Change or Set MySQL Long Query Time Value for log-slow-queries Thay đổi hoặc Set MySQL Long Query Time giá trị gia tăng cho log-slow-queries
- WordPress MySQL SQL Query Error in WPDB Class WordPress MySQL vấn SQL Error in WPDB Class
- How to Find and Replace Text in MySQL Database using SQL Làm thế nào để Tìm và Thay thế văn bản trong cơ sở dữ liệu MySQL sử dụng SQL
- Check and Optimize MySQL Database Automatically with Crontab/Cron Kiểm tra và Tối ưu hóa cơ sở dữ liệu MySQL Tự động với Crontab / định kỳ
- MySQL Database Performance Tuning Best Practices Video Tutorial Cơ sở dữ liệu MySQL Performance Tuning Best Practices Video Tutorial
- Remove or Trim First or Last Few Characters in MySQL Database with SQL Hủy bỏ hoặc Trim Nhân vật đầu tiên hoặc ít Lần trong cơ sở dữ liệu MySQL với SQL
- Enable MySQL InnoDB Storage Engine Support in XAMPP Installation Enable MySQL InnoDB Lưu trữ Công cụ hỗ trợ trong XAMPP cài đặt
- Change and Reset MySQL root Password Thay đổi và Thiết lập lại mật khẩu root MySQL
- You Are Not Authorized to Execute SQL Queries in vBulletin Maintenance You Are Not ủy quyền để truy vấn SQL Thi công tại Bảo trì vBulletin
- Oracle Database Link Oracle Database Link










































July 18th, 2009 02:23 18 Tháng Bảy 2009 02:23
when you go to my.cf you will see that by default the lines khi bạn đi đến my.cf bạn sẽ thấy rằng mặc định dòng
log_slow_queries = /var/log/mysql/mysql-slow.log & log_slow_queries = / var / log / mysql / mysql-slow.log &
long_query_time = 1 long_query_time = 1
are commented out, however, the next line được nhận xét ra, tuy nhiên, dòng kế tiếp
log-queries-not-using-indexes log-queries-không-sử dụng-chỉ mục
is not, so if you enable slow query logging then by default all queries not using indexes will show up in that log. là không, vì thế nếu bạn kích hoạt tính năng truy vấn chậm sau đó đăng nhập mặc định tất cả các truy vấn không chỉ mục bằng cách sử dụng sẽ hiển thị trong bản ghi đó. For most DBs this will be a ton of data which is why your logs are filling up so quickly. Đối với hầu hết DBS này sẽ được một tấn dữ liệu đó là lý do tại sao các bản ghi của bạn được làm đầy lên quá nhanh.
My suggestion is comment out this line Đề nghị của tôi là comment những dòng này
log-queries-not-using-indexes log-queries-không-sử dụng-chỉ mục
and change the long_query_time value to something low like 1 or 2, this should give you some meaningful results with which to start from. và thay đổi giá trị long_query_time đến một cái gì đó thấp như 1 hoặc 2, điều này sẽ cung cấp cho bạn một số kết quả có ý nghĩa nào đó để bắt đầu từ.
If you still get no results it might be that you have no slow queries in which case you should uncomment out the line Nếu bạn vẫn không nhận được kết quả nó có thể được rằng bạn không có truy vấn chậm trong trường hợp đó, bạn nên bỏ ghi chú vào dòng
log-queries-not-using-indexes log-queries-không-sử dụng-chỉ mục
and start trying to index some of those queries. và bắt đầu cố gắng để chỉ một số trong những truy vấn.
hope that helps someone hy vọng rằng sẽ giúp người nào đó
-Kain -Kain
February 20th, 2009 21:29 Ngày 20 Tháng Hai 2009 21:29
I use MONyog Query analyzer to analyze slow queries. Tôi sử dụng MONyog phân tích truy vấn để phân tích truy vấn chậm. It works flawlessly. Nó hoạt động hoàn hảo.
December 19th, 2008 19:37 19 Tháng Mười Hai 2008 19:37
I can't really confirm this – I enabled slow loggin in the appropiate config file (debian lenny, mysql 5.0 latest) because I HAD “some” slow queries before. Tôi có thể không thật sự xác nhận điều này - Tôi bật loggin chậm trong file cấu hình thích hợp (debian lenny, mysql 5,0 mới nhất) vì tôi HAD "một số" chậm truy vấn trước đó.
After enabling there are thousands of “slow queries” being logged – The slow limit is set to the default of 10 sec. Sau khi cho phép có hàng ngàn "truy vấn chậm" đang được đăng nhập - hạn chậm được thiết lập để mặc định là 10 giây. This is really nonsense as there can't be a >10sec query when the whole page is being calculated, by php, tranferred over the net and rendered on the client browser in under 5 sec Điều này thực sự là vô nghĩa như là không thể có một> 10sec truy vấn khi toàn bộ trang web đang được tính toán, bằng php, tranferred trên net và kết xuất trên trình duyệt của khách hàng trong hơn 5 giây
greetings Marcus lời chào Marcus
November 1st, 2008 18:48 Ngày 01 tháng 11 năm 2008 18:48
i try to do that but this message appeared i cố gắng làm điều đó, nhưng thông báo này xuất hiện
081101 5:34:51 [ERROR] Fatal error: Please read “Security” section of the manual to find out how to run mysqld as root! 081101 5:34:51 [ERROR] Fatal error: Xin đọc "Security" phần hướng dẫn sử dụng để tìm ra cách để chạy mysqld root!
081101 5:34:51 [ERROR] Aborting 081101 5:34:51 [ERROR] Aborting
081101 5:34:51 [Note] mysqld: Shutdown complete 081101 5:34:51 [Note] mysqld: Shutdown hoàn thành
what should i do in this case? những gì tôi nên làm gì trong trường hợp này?
January 23rd, 2007 00:22 23 Tháng 1 2007 00:22
[...] If you enable slow queries log of MySQL database server, you will notice that from the slow query log file contains only SQL statements and queries that took more than query_time of 10 seconds to execute or run. [...] Nếu bạn cho phép truy vấn chậm nhật ký của máy chủ cơ sở dữ liệu MySQL, bạn sẽ thấy rằng từ các truy vấn log file chậm chỉ chứa câu lệnh SQL và truy vấn mà đã hơn query_time của 10 giây để thực hiện hoặc chạy. This is the default value or query time threshold for log_slow_queries function, which is 10 seconds. Đây là giá trị mặc định, hoặc ngưỡng thời gian truy vấn cho log_slow_queries chức năng, mà là 10 giây. 10 seconds is way too long for a SQL query to complete, so the value may be too high to capture any meaningful data. 10 giây là con đường quá dài cho một truy vấn SQL để hoàn thành, do đó, giá trị có thể quá cao để nắm bắt bất kỳ dữ liệu có ý nghĩa. You can alter or change the slow query time to lower value or number of seconds. Bạn có thể thay đổi hoặc thay đổi thời gian truy vấn chậm hoặc giá trị thấp hơn số giây. You can set a new long_query_time in the MySQL configuration file, namely my.cnf or my.ini, normally located in /etc directory. Bạn có thể thiết lập một long_query_time mới trong file cấu hình MySQL, cụ thể là my.cnf hoặc my.ini, thường nằm trong thư mục / etc /. Simply add the following line to the configuration file: [...] Đơn giản chỉ cần thêm dòng sau vào file cấu hình: [...]