Phân tích nhật ký truy vấn chậm/mysql

Mysql có thể ghi lại các truy vấn chậm, mất nhiều thời gian hơn để thực hiện. Trong một số trường hợp, điều này được mong đợi nhưng một số truy vấn mất nhiều thời gian hơn do lỗi mã hóa. slow-query-log chắc chắn có thể giúp bạn tìm thấy các truy vấn đó và giúp dễ dàng gỡ lỗi ứng dụng của bạn

Trong thế giới WordPress, nhiều plugin thường được mã hóa bởi những người nghiệp dư của tôi, những người không biết về quy mô hoạt động của các trang web lớn. Tốt hơn hết bạn nên sử dụng slow-query-log để tìm ra những plugin như vậy

Bật nhật ký truy vấn chậm

Bạn có thể bật ghi nhật ký chậm bằng cách bỏ nhận xét các dòng sau trong /etc/mysql/my.cnf. Nếu bạn đang sử dụng EE4, vị trí của tệp cấu hình mysql được đề cập trong tài liệu của nó

slow-query-log = 1
slow-query-log-file = /var/log/mysql/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes = 1

Dòng cuối cùng sẽ báo ghi nhật ký chậm để ghi các truy vấn không sử dụng chỉ mục. Bạn có thể giữ bình luận nếu bạn muốn bỏ qua các truy vấn không sử dụng chỉ mục

Nếu máy chủ của bạn có ít RAM hơn và bạn thấy nhiều truy vấn của mình trong nhật ký truy vấn chậm, thì bạn có thể tăng giá trị của long_query_time

Bạn nên kích hoạt nhật ký truy vấn chậm trong khi chỉ gỡ lỗi và tắt nó sau khi bạn hoàn thành việc này. Hãy chuyển sang phần phân tích

mysqldumpslow

Cái này đi kèm với máy chủ mysql

mysqldumpslow /var/log/mysql/mysql-slow.log

Sau đây sẽ hiển thị 5 truy vấn hàng đầu đã trả về tối đa hàng. Nó có thể tìm các truy vấn mà bạn đã bỏ lỡ mệnh đề LIMIT. Một kẻ giết người hiệu suất phổ biến

mysqldumpslow -a -s r -t 5 /var/log/mysql/mysql-slow.log

Sau đây sẽ sắp xếp đầu ra theo số lượng i. e. số lần truy vấn được tìm thấy trong nhật ký chậm. Hầu hết các truy vấn tần suất đôi khi hóa ra lại là các truy vấn không mong muốn

MySQL cung cấp một số tệp nhật ký khác nhau có thể giúp bạn tìm hiểu điều gì đang diễn ra bên trong phiên bản máy chủ MySQL của bạn. Bao gồm các

  • nhật ký lỗi
  • nhật ký isam
  • nhật ký truy vấn chung
  • nhật ký nhị phân
  • nhật ký chậm

Trong số này, nhật ký truy vấn chậm đặc biệt hữu ích để tìm các truy vấn không hiệu quả hoặc tốn thời gian, điều này có thể ảnh hưởng xấu đến cơ sở dữ liệu và hiệu suất tổng thể của máy chủ. Blog này sẽ mô tả cách đọc và diễn giải đầu ra nhật ký truy vấn chậm để có hiệu suất truy vấn gỡ lỗi tốt hơn

Nhật ký truy vấn chậm bao gồm các câu lệnh SQL mất hơn long_query_time giây để thực thi và yêu cầu kiểm tra ít nhất các hàng min_examined_row_limit. Do đó, các truy vấn xuất hiện trong nhật ký truy vấn chậm là những truy vấn mất nhiều thời gian để thực hiện và do đó là các ứng cử viên để tối ưu hóa

Nhật ký truy vấn chậm bị tắt theo mặc định để tiết kiệm dung lượng ổ đĩa. Bạn có thể bật tính năng này bằng cách đặt biến --slow_query_log thành 1 [BẬT trong Navicat]. Tương tự như vậy, không cung cấp đối số cũng bật nhật ký truy vấn chậm. Tương tự như vậy, một đối số là 0 [TẮT trong Navicat] sẽ vô hiệu hóa nhật ký

Trong Navicat, bạn có thể truy cập các biến hệ thống bằng công cụ Server Monitor. Nó có thể truy cập thông qua lệnh menu chính Công cụ. Trong Màn hình máy chủ, nhấp vào tab Biến ở giữa và cuộn xuống để xem các biến máy chủ slow_query_log và slow_query_log_file trong danh sách

Kiểm tra nhật ký truy vấn dài và chậm có thể là một công việc tốn thời gian do lượng nội dung khổng lồ cần sàng lọc. Đây là một mục điển hình trong tệp nhật ký chậm có thể trông như thế nào

# Time: 140905  6:33:11
# User@Host: dbuser[dbname] @ hostname [1.2.3.4]
# Query_time: 0.116250  Lock_time: 0.000035 Rows_sent: 0  Rows_examined: 20878
use dbname;
SET timestamp=1409898791;
...SLOW QUERY HERE...

Để đọc nội dung nhật ký dễ dàng hơn, bạn có thể sử dụng tiện ích dòng lệnh mysqldumpslow để xử lý tệp nhật ký truy vấn chậm và tóm tắt nội dung của nó

~ $ mysqldumpslow -a /var/lib/mysql/slowquery.log
 Reading mysql slow query log from /var/lib/mysql/slowquery.log
 Count: 2  Time=316.67s [633s]  Lock=0.00s [0s]  Rows_sent=0.5 [1], Rows_examined=0.0 [0], Rows_affected=0.0 [0], root[root]@localhost
...SLOW QUERY HERE...

Trình phân tích truy vấn Navicat

Công cụ Trình phân tích truy vấn của cung cấp biểu diễn đồ họa của nhật ký truy vấn giúp diễn giải nội dung của chúng dễ dàng hơn nhiều. Ngoài ra, công cụ Trình phân tích truy vấn cho phép bạn theo dõi và tối ưu hóa hiệu suất truy vấn, trực quan hóa thống kê hoạt động truy vấn, phân tích các câu lệnh SQL, cũng như nhanh chóng xác định và giải quyết các truy vấn chạy dài

Ngoài Nhật ký truy vấn chậm, Trình phân tích truy vấn thu thập thông tin về các câu lệnh truy vấn bằng một trong các phương pháp sau

  1. Truy xuất Nhật ký truy vấn chung từ máy chủ và phân tích thông tin của nó
  2. Truy vấn cơ sở dữ liệu performance_schema và phân tích nó để biết thông tin hiệu suất cụ thể

Bạn sẽ tìm thấy phần Trình phân tích truy vấn bên dưới phần Danh sách quy trình và truy vấn bế tắc mới nhất

Blog này đã trình bày một số cách đọc đầu ra nhật ký truy vấn chậm để gỡ lỗi hiệu suất truy vấn của bạn tốt hơn

Nhấp để biết thêm chi tiết về tất cả các tính năng của Navicat Monitor hoặc bản dùng thử miễn phí đầy đủ chức năng trong 14 ngày

Làm cách nào để phân tích hiệu suất truy vấn MySQL?

Tối ưu hóa lược đồ cơ sở dữ liệu .
Giới hạn số cột. MySQL có giới hạn 4096 cột trên mỗi bảng. .
Bình thường hóa bảng. Bình thường hóa giữ cho tất cả dữ liệu không dư thừa. .
Sử dụng các loại dữ liệu phù hợp nhất. Có hơn 20 loại dữ liệu khác nhau trong MySQL được thiết kế cho các mục đích sử dụng khác nhau. .
Tránh các giá trị Null

Làm cách nào để xóa nhật ký truy vấn chậm của MySQL?

Bây giờ tôi muốn xóa tệp nhật ký truy vấn chậm mysqld-slow. .
Dừng dịch vụ mysql
Sao lưu/Sao chép nhật ký truy vấn chậm hiện có sang thư mục hoặc thư mục khác
Xóa/Di chuyển tệp nhật ký sang thư mục khác
Tạo một tệp nhật ký mới có cùng tên
Bắt đầu dịch vụ mysql

Tại sao truy vấn MySQL của tôi chạy chậm?

Truy vấn có thể trở nên chậm vì nhiều lý do khác nhau, từ việc sử dụng chỉ mục không đúng cách cho đến các lỗi trong chính công cụ lưu trữ . Tuy nhiên, trong hầu hết các trường hợp, các truy vấn trở nên chậm chạp do các nhà phát triển hoặc quản trị viên cơ sở dữ liệu MySQL bỏ qua việc theo dõi và theo dõi hiệu suất của chúng.

Làm cách nào để kiểm tra nhật ký truy vấn chậm trong SQL Server?

7 cách để tìm các truy vấn SQL chậm .
Tạo một kế hoạch thực hiện thực tế. .
Theo dõi việc sử dụng tài nguyên. .
Sử dụng Trình tư vấn điều chỉnh công cụ cơ sở dữ liệu. .
Tìm truy vấn chậm với SQL DMV. .
Báo cáo truy vấn qua Giải pháp APM. .
Sự kiện mở rộng máy chủ SQL. .
Thông tin chi tiết về hiệu suất truy vấn SQL Azure

Chủ Đề