Nhật ký truy vấn là gì?

Trên bảng điều khiển Giám sát KX, màn hình DeltaOps dxQueryLog hiển thị số liệu thống kê tóm tắt về các truy vấn đang chạy trên mỗi quy trình kdb+ trong hệ thống đã bật ghi nhật ký truy vấn

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

Phân tích QueryLog hiển thị các truy vấn đã được nhận bởi các quy trình. Lọc thông tin được lập bảng bằng các điều khiển sau

controlfiltersBáo cáo báo cáo từ bảng dxQueryLogNgày ghi nhật kýBắt đầuthời gian bắt đầuThời gian kết thúcQuy trìnhtên quy trìnhNgười dùngtên người dùng

Đặt tất cả các tiêu chí lọc và nhấp vào Gửi. Trong số các thông tin hiển thị

cộtnội dungtên quy trình đã thực thiSố truy vấn đã thực thiKhông thành côngsố truy vấn không thành công>100 mili giâysố truy vấn mất hơn 100 mili giây để trả về10-100 mili giâysố truy vấn mất từ ​​10 đến 100 mili giây để trả về0-10 mili giâysố truy vấn mất từ ​​0 đến 10 mili giây để trả về>10MBsố truy vấn chiếm hơn 10Mb đó

Số liệu thống kê nhật ký truy vấn xử lý bị xô theo thời gian

Số liệu thống kê nhật ký truy vấn quy trình được lưu trữ theo thời gian hiển thị số liệu thống kê cấp quy trình cho tất cả các truy vấn mà quy trình nhận được. Số liệu thống kê được hiển thị trong lưới chuỗi thời gian, được nhóm theo nhóm đã chọn. cái này xuất hiện khi một quy trình được chọn từ phần

Một tùy chọn Báo cáo là TimeAndMemProfile, hiển thị QryTime [ms] và QryMemMB [Mb] được nhóm thành nhóm nhỏ, trung bình và lớn

Đôi khi bạn cần theo dõi tất cả các truy vấn được gửi đến máy chủ MySQL trong một khoảng thời gian. Máy chủ MySQL cung cấp một cách để hiển thị nhật ký truy vấn chung và nhật ký truy vấn chậm, nếu các nhật ký đó được bật. Các đích có thể có cho các mục nhập nhật ký là tệp nhật ký hoặc bảng general_log và slow_log trong cơ sở dữ liệu hệ thống mysql

Trong bài đăng này, chúng tôi sẽ kích hoạt nhật ký chung và nhật ký truy vấn chậm và hiển thị chúng trong các bảng trong MySQL

1. Trước tiên, hãy kiểm tra xem bạn đã có sẵn hai bảng slow_loggeneral_log trong cơ sở dữ liệu mysql chưa

Nếu không, bạn phải tạo chúng, lưu ý rằng bạn phải tạo trong cơ sở dữ liệu mysql

  • Để tạo bảng general_log

  CREATE TABLE `general_log` [
   `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `thread_id` bigint[21] unsigned NOT NULL,
   `server_id` int[10] unsigned NOT NULL,
   `command_type` varchar[64] NOT NULL,
   `argument` mediumtext NOT NULL
  ] ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'

Nhật ký truy vấn chung là bản ghi chung về những gì 

  CREATE TABLE `slow_log` [
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int[11] NOT NULL,
   `rows_examined` int[11] NOT NULL,
   `db` varchar[512] NOT NULL,
   `last_insert_id` int[11] NOT NULL,
   `insert_id` int[11] NOT NULL,
   `server_id` int[10] unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint[21] unsigned NOT NULL
  ] ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
3 đang làm. Máy chủ ghi thông tin vào nhật ký này khi máy khách kết nối hoặc ngắt kết nối và nó ghi lại từng câu lệnh SQL nhận được từ máy khách. Nhật ký truy vấn chung có thể rất hữu ích khi bạn nghi ngờ một ứng dụng khách có lỗi và muốn biết chính xác những gì ứng dụng khách đã gửi tới _______1_______3

  • Và bảng slow_log

  CREATE TABLE `slow_log` [
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int[11] NOT NULL,
   `rows_examined` int[11] NOT NULL,
   `db` varchar[512] NOT NULL,
   `last_insert_id` int[11] NOT NULL,
   `insert_id` int[11] NOT NULL,
   `server_id` int[10] unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint[21] unsigned NOT NULL
  ] ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'

Nhật ký truy vấn chậm bao gồm các câu lệnh SQL mất hơn 

  CREATE TABLE `slow_log` [
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int[11] NOT NULL,
   `rows_examined` int[11] NOT NULL,
   `db` varchar[512] NOT NULL,
   `last_insert_id` int[11] NOT NULL,
   `insert_id` int[11] NOT NULL,
   `server_id` int[10] unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint[21] unsigned NOT NULL
  ] ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
6 giây để thực thi và yêu cầu ở
  CREATE TABLE `slow_log` [
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int[11] NOT NULL,
   `rows_examined` int[11] NOT NULL,
   `db` varchar[512] NOT NULL,
   `last_insert_id` int[11] NOT NULL,
   `insert_id` int[11] NOT NULL,
   `server_id` int[10] unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint[21] unsigned NOT NULL
  ] ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
7 hàng để được kiểm tra. Nhật ký truy vấn chậm có thể được sử dụng để tìm các truy vấn mất nhiều thời gian để thực thi và do đó là các ứng cử viên để tối ưu hóa

Giá trị tối thiểu và giá trị mặc định của 

  CREATE TABLE `slow_log` [
   `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
                          ON UPDATE CURRENT_TIMESTAMP,
   `user_host` mediumtext NOT NULL,
   `query_time` time NOT NULL,
   `lock_time` time NOT NULL,
   `rows_sent` int[11] NOT NULL,
   `rows_examined` int[11] NOT NULL,
   `db` varchar[512] NOT NULL,
   `last_insert_id` int[11] NOT NULL,
   `insert_id` int[11] NOT NULL,
   `server_id` int[10] unsigned NOT NULL,
   `sql_text` mediumtext NOT NULL,
   `thread_id` bigint[21] unsigned NOT NULL
  ] ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
6 lần lượt là 0 và 10. Giá trị có thể được chỉ định ở độ phân giải micro giây

2. Cho phép ghi nhật ký truy vấn trên cơ sở dữ liệu

SET global general_log = 1;
SET global log_output = 'table';

3. Bây giờ bạn có thể xem nhật ký bằng cách chạy truy vấn này

________số 8_______

4. Nếu bạn muốn tắt ghi nhật ký truy vấn trên cơ sở dữ liệu, hãy chạy truy vấn này

SET global general_log = 0;

Sử dụng TablePlus, bạn có thể bật nhật ký giao diện điều khiển từ GUI

Để bật/tắt nhật ký, bấm vào nút nhật ký bảng điều khiển gần trên cùng bên phải hoặc sử dụng phím tắt Cmd + Shift + C

Bạn cũng có thể chọn ghi nhật ký truy vấn dữ liệu, truy vấn meta hoặc tất cả truy vấn

Bạn mới sử dụng TablePlus? . 


Bạn có nên đăng nhập các truy vấn SQL không?

Vì vậy, có, bạn có thể chạy nhật ký gỡ lỗi của các truy vấn, miễn là bạn bảo mật và kiểm soát nhật ký đó theo các biện pháp bảo vệ mà dữ liệu yêu cầu.

Nhật ký truy vấn chậm mysql là gì?

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 . Nhật ký truy vấn chậm có thể được sử dụng để tìm các truy vấn mất nhiều thời gian để thực thi và do đó là các ứng cử viên để tối ưu hóa.

Làm cách nào để kiểm tra nhật ký truy vấn chậm của mysql?

Sử dụng mysqldumpslow để phân tích nhật ký truy vấn chậm .
Sudo mysqldumpslow /var/log/mysql/mysql-slow. đăng nhập
Sudo mysqldumpslow -t 5 /var/log/mysql/mysql-slow. đăng nhập
sudo mysqldumpslow -t 3 -s l /var/log/mysql/mysql-slow. đăng nhập

Làm cách nào để kiểm tra nhật ký trong mysql?

Trên các hệ thống Ubuntu, vị trí mặc định cho MySQL là /var/log/mysql/error. đăng nhập. Trong nhiều trường hợp, các bản ghi lỗi được đọc dễ dàng nhất với chương trình less, một tiện ích dòng lệnh cho phép bạn xem các tệp nhưng không chỉnh sửa chúng. sudo less /var/log/mysql/error .

Chủ Đề