Truy vấn điểm chuẩn MySQL

Tôi nghĩ bạn sẽ đồng ý với tôi khi tôi nói rằng cơ sở dữ liệu là một trong những thành phần quan trọng nhất của hầu hết mọi ứng dụng ngày nay. Khi làm việc với cơ sở dữ liệu, bạn phải quan tâm đến rất nhiều thứ. Một số ví dụ bao gồm thiết kế và tạo cơ sở dữ liệu, duy trì cơ sở dữ liệu, quản lý sao lưu và phục hồi cũng như đo lường hiệu suất. Và trong bài đăng này, tôi đang tập trung vào phần hiệu suất

Hiệu suất luôn được liên kết với thời gian. Cơ sở dữ liệu của bạn càng nhanh thì hiệu suất càng cao. Khi nói đến cơ sở dữ liệu, sự tương tác luôn xảy ra với các truy vấn. Vì vậy, để đo hiệu suất của cơ sở dữ liệu của bạn, bạn phải đo thời gian truy vấn. Và đó là những gì tôi sẽ nói trong bài viết này

Truy vấn điểm chuẩn MySQL

Tại sao phải đo thời gian truy vấn?

Khi bạn có một ứng dụng sử dụng cơ sở dữ liệu, ứng dụng sẽ thực thi các truy vấn cơ sở dữ liệu để tương tác với cơ sở dữ liệu. Các truy vấn này có thể từ quản trị viên hoặc từ phía khách hàng của bạn. Mỗi truy vấn này cần một khoảng thời gian để được thực thi bởi hệ thống quản lý cơ sở dữ liệu (DBMS). Để tối ưu hóa hiệu suất, bạn phải đảm bảo rằng các truy vấn đang được thực hiện nhanh nhất có thể

Đo thời gian truy vấn giúp bạn hiểu thời gian thực hiện truy vấn. Khi bạn biết điều này, bạn có thể quyết định truy vấn nào đang ngốn thời gian và sau đó tiến hành tối ưu hóa truy vấn đó. Về cơ bản, đo thời gian truy vấn là bước đầu tiên trong quy trình tối ưu hóa cơ sở dữ liệu

Trong bài đăng này, tôi tập trung vào việc đo thời gian truy vấn MySQL vì MySQL là một trong những hệ quản trị cơ sở dữ liệu được sử dụng nhiều nhất. Vì vậy, hãy xem xét một vài cách để đo lường nó

Làm thế nào để bạn đo thời gian truy vấn MySQL?

Bạn sẽ tìm thấy những cách khác nhau để làm điều này. Điều gì là tốt nhất cho bạn tùy thuộc vào trường hợp sử dụng của bạn. Trong một số trường hợp, đo thời gian truy vấn cho một hoặc một vài trường hợp là đủ cho bạn. Và trong những trường hợp khác, bạn sẽ phải làm điều đó cho một số lượng lớn truy vấn. Để đảm bảo bài đăng này đáp ứng cả hai loại yêu cầu này, tôi sẽ cho bạn biết cách đo thời gian truy vấn cho từng loại yêu cầu này

Đo thời gian truy vấn MySQL cho các truy vấn đơn lẻ

MySQL theo mặc định hiển thị thời gian thực hiện truy vấn. Bất cứ khi nào bạn chạy một truy vấn hợp lệ, bạn sẽ thấy thời gian thực hiện tính bằng giây. Đây là ảnh chụp màn hình thời gian sau khi tôi thực hiện một số truy vấn

Truy vấn điểm chuẩn MySQL

Nhưng điều này sẽ không hữu ích lắm khi bạn đang sử dụng chương trình phía máy chủ để thực hiện truy vấn. Trong trường hợp đó, bạn có thể sử dụng trình lược tả để đo thời gian truy vấn

Điều đầu tiên cần làm là khởi tạo trình lược tả bằng truy vấn bên dưới

set profiling=1

Sau đó, bạn có thể thực hiện bất kỳ truy vấn nào bạn muốn để đo thời gian thực hiện cho. Sau khi thực hiện, bạn có thể kiểm tra thời gian thực hiện truy vấn bằng truy vấn bên dưới

show profiles;

Bạn sẽ có thể xem thời lượng thực hiện truy vấn tính bằng giây

Truy vấn điểm chuẩn MySQL

Những cách này phù hợp khi bạn muốn đo thời gian truy vấn cho một hoặc một số truy vấn. Nhưng điều này không thực tế khi bạn muốn đo thời gian truy vấn cho một số lượng lớn truy vấn. Ví dụ: nếu bạn có một ứng dụng đã triển khai và người dùng liên tục thực hiện các giao dịch cơ sở dữ liệu bằng ứng dụng đó, bạn sẽ không thực tế hoặc không thể ghi lại các truy vấn này và chạy từng truy vấn một để đo thời gian truy vấn. Bạn sẽ cần một cái gì đó hoạt động cho một tập hợp lớn các truy vấn và cũng có thể mở rộng

Vì vậy, hãy để tôi cho bạn biết cách đo thời gian truy vấn trong những tình huống như vậy

Đo thời gian truy vấn MySQL bằng Nhật ký truy vấn chậm

MySQL cho phép bạn ghi lại các truy vấn chậm để sau này bạn có thể kiểm tra chúng nhằm tối ưu hóa. Vì vậy, thay vì ghi lại tất cả các chi tiết truy vấn, bạn chỉ cần ghi lại các truy vấn chậm. Điều này tiết kiệm rất nhiều bộ nhớ vì bạn chỉ đăng nhập những gì quan trọng. Nhưng làm thế nào để hệ thống biết rằng truy vấn chậm? . Vì vậy, nếu bạn gán giá trị “2” cho biến này, mọi truy vấn mất hơn hai giây để thực hiện sẽ được ghi lại

Để tôi chỉ cho bạn một ví dụ về cách bạn có thể định cấu hình MySQL để ghi lại các truy vấn chậm

Trước tiên, bạn sẽ phải bật truy vấn nhật ký chậm cho MySQL DBMS. Để làm điều đó, hãy thêm dòng sau vào tệp cấu hình MySQL

slow_query_log

Bạn cũng có thể đề cập đến tên của tệp nơi lưu trữ nhật ký bằng cách thêm dòng sau

slow_query_log_file=

Sau đó thêm giá trị long_query_time . Nếu bạn muốn ghi lại tất cả các truy vấn, bạn có thể đặt giá trị này thành 0

long_query_time=0

Truy vấn điểm chuẩn MySQL

Giờ đây, bất cứ khi nào có bất kỳ truy vấn nào được thực thi, thông tin chi tiết của truy vấn đó sẽ được lưu trong tệp nhật ký. Tôi đã chạy một vài truy vấn chọn đơn giản và sau đó, tệp nhật ký của tôi trông giống như thế này

Truy vấn điểm chuẩn MySQL

Ghi nhật ký chi tiết của tất cả các truy vấn sẽ tiêu tốn bộ nhớ một cách không cần thiết. Để tiết kiệm bộ nhớ đó, bạn sẽ phải quyết định giá trị cho biến long_query_time. Bạn có thể quyết định điều này bằng cách tham khảo thời gian thực hiện truy vấn điểm chuẩn cho trường hợp sử dụng của mình

Sử dụng nhật ký để đo thời gian truy vấn cung cấp cho bạn rất nhiều thông tin và thực sự hữu ích khi bạn muốn đo thời gian truy vấn cho một số lượng lớn truy vấn. Nhưng những nhật ký này ở định dạng thô. Xem qua các nhật ký này để tìm dữ liệu có giá trị đối với bạn có thể khiến bạn bực bội. Rõ ràng bạn có thể chạy tệp nhật ký này thông qua trình phân tích cú pháp để chỉ tìm nạp các chi tiết quan trọng. Nhưng đó lại là một nhiệm vụ bổ sung

Nếu bạn đang tìm kiếm một giải pháp nhanh chóng để đo thời gian truy vấn MySQL mà không cần nỗ lực nhiều, bạn có thể sử dụng các công cụ quản lý nhật ký có sẵn

Đo thời gian truy vấn MySQL bằng Scalyr

Scalyr là một trong những công cụ quản lý nhật ký giúp bạn xử lý nhật ký dễ dàng. Điểm hay của Scalyr là ngoài việc ghi nhật ký, nó còn trực quan hóa chúng cho bạn. Bây giờ, hãy để tôi chỉ cho bạn cách Scalyr khiến mọi thứ trở nên dễ dàng với bạn

Trước tiên, bạn sẽ phải đăng nhập hoặc đăng ký Scalyr. Sau khi hoàn tất, hãy cài đặt tác nhân Scalyr trên hệ thống đang chạy máy chủ MySQL. Bạn có thể tìm thấy các hướng dẫn ở đây. Nhân viên này sẽ tải nhật ký của bạn lên trang tổng quan để bạn có thể dễ dàng xem chúng

Để bắt đầu ghi nhật ký truy vấn MySQL, hãy mở thiết bị đầu cuối và sau đó mở /etc/scalyr-agent-2/agent. tập tin json. Sau đó thêm tên người dùng và mật khẩu DBMS trong phần màn hình như sau

monitors: [
  {
     module:            "scalyr_agent.builtin_monitors.mysql_monitor",
     database_socket:   "default",
     database_username: "USERNAME",
     database_password: "PASSWORD"
  }
]

Sau khi định cấu hình tệp, hãy khởi động tác nhân bằng cách chạy lệnh sau

sudo scalyr-agent-2 start

Bây giờ, hãy chuyển đến menu bảng điều khiển Scalyr và chọn MySQL. Bạn sẽ có thể xem chi tiết nhật ký của MySQL, bao gồm thời gian truy vấn

Đây là một cách rất đơn giản và dễ dàng để đo thời gian truy vấn cho một số lượng lớn các truy vấn MySQL

Cách tốt nhất

Tôi tin rằng cách tốt nhất để đo thời gian truy vấn là sử dụng các công cụ như Scalyr. Nó không chỉ cung cấp cho bạn thông tin bạn cần mà còn mang đến cho bạn ở dạng dễ hiểu. Bạn không cần phải bực bội khi xem các tệp nhật ký thô nữa. Để trải nghiệm những gì tôi đã nói, bạn sẽ phải tự mình chứng kiến. Vì vậy, hãy tiếp tục và thử. Bạn có thể dùng thử miễn phí tại đây

Làm cách nào để sử dụng điểm chuẩn trong MySQL?

khối lượng công việc lua và sysbench sẽ được kết hợp để giới thiệu cách chạy điểm chuẩn trên hệ thống Linux. .
Thêm kho lưu trữ sysbench vào hệ thống và cài đặt nó. .
Sao chép kho lưu trữ Percona TPCC từ GitHub. .
Sao chép tập lệnh Percona TPCC vào thư mục sysbench. .
Chuẩn bị cơ sở dữ liệu cho điểm chuẩn. .
Chạy điểm chuẩn

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

Số liệu hiệu suất cơ sở dữ liệu MySQL .
Hệ thống. Tài nguyên hệ thống trên máy chủ. .
Thông lượng truy vấn. Khối lượng công việc của cơ sở dữ liệu có thể được đo bằng số lượng truy vấn mỗi giây. .
kết nối. Số lượng kết nối mở chạy đồng thời có thể làm quá tải máy chủ và làm chậm hiệu suất

Điểm chuẩn trong MySQL là gì?

Sử dụng MySQL làm điểm chuẩn kiểm tra một phiên bản Máy chủ MySQL duy nhất . Sử dụng MySQL Cluster, công cụ điểm chuẩn có thể thực hiện các thử nghiệm phân tán lớn với nhiều nút Dữ liệu cụm MySQL và các phiên bản Máy chủ MySQL. Công cụ Điểm chuẩn DBT2 cung cấp các tập lệnh để tự động thực hiện các điểm chuẩn này.

Làm cách nào để kiểm tra hiệu suất truy vấn SQL?

Bắt đầu bằng cách nhấp vào “Truy vấn công cụ cơ sở dữ liệu”, trên thanh công cụ của SQL Server Management Studio. Sau đó, nhập truy vấn và nhấp vào “Bao gồm Kế hoạch Thực hiện Thực tế” trên menu Truy vấn. Cuối cùng, đã đến lúc chạy truy vấn của bạn. Bạn làm điều đó bằng cách nhấp vào nút thanh công cụ “Execute” hoặc nhấn F5