MySQL Workbench bao gồm các công cụ khác nhau cho cả DBA và các nhà phát triển liên quan đến việc xem và cải thiện hiệu suất. Bảng điều khiển hiệu suất và báo cáo cho phép DBA dễ dàng xem hiệu suất của máy chủ tổng thể và các báo cáo khác nhau cung cấp các chế độ xem các điểm nóng IO, báo cáo SQL, mạng, công cụ dữ liệu, v.v. Đối với các nhà phát triển, MySQL Workbench cung cấp các chế độ xem dễ hiểu để tối ưu hóa các truy vấn và truy cập dữ liệu.
Bảng điều khiển hiệu suất
Bảng điều khiển hiệu suất cung cấp các chế độ xem "At A Glance" nhanh chóng về hiệu suất MySQL trên máy chủ chính, mạng và số liệu InnoDB. Đơn giản chỉ cần chuột qua các biểu đồ và hình ảnh khác nhau để có thêm chi tiết.
Báo cáo hiệu suất
Hơn 20 báo cáo giúp phân tích hiệu suất của cơ sở dữ liệu MySQL của bạn. Các báo cáo được nhắm mục tiêu làm cho việc phân tích các điểm nóng IO, báo cáo SQL chi phí cao, số liệu thống kê chờ đợi, số liệu động cơ InnoDB. MySQL Workbench tận dụng các chế độ xem SYS trên lược đồ hiệu suất.
Giải thích kế hoạch
Kế hoạch giải thích cho thấy các hoạt động MySQL thực hiện khi chạy các câu lệnh SQL. Thông tin này có thể giúp tối ưu hóa hiệu suất SQL. MySQLworkBench trực quan hóa các kế hoạch giải thích về mặt đồ họa và nêu bật cách các câu lệnh SQL thực thi trong MySQL. Bằng cách hiển thị chi phí của các nhà phát triển và gợi ý điều chỉnh, MySQL Workbench cải thiện và đơn giản hóa điều chỉnh hiệu suất câu lệnh SQL.
Thống kê truy vấn
Thống kê truy vấn cung cấp số liệu thống kê tức thời về SQL được thực hiện từ Trình chỉnh sửa Workbench, chẳng hạn như chi tiết về các trường trong tập kết quả của bạn và thống kê hiệu suất chính từ truy vấn của bạn, chẳng hạn như thời gian khách hàng, độ trễ mạng, thời gian thực hiện máy chủ, sử dụng chỉ mục, số lượng hàng được quét , tham gia, sử dụng lưu trữ dữ liệu tạm thời, và nhiều hơn nữa.
Tài nguyên bổ sung
- Hướng dẫn video: Bản sao lưu doanh nghiệp MySQL sử dụng MySQL Workbench
- Hướng dẫn video: MySQL Workbench
- Các tính năng và lợi ích
- Tải xuống MySQL Workbench Enterprise Edition
8.2.1 & NBSP; Tối ưu hóa các câu lệnh Chọn
Các truy vấn, dưới dạng các câu lệnh SELECT
, thực hiện tất cả các hoạt động tra cứu trong cơ sở dữ liệu. Điều chỉnh các câu lệnh này là ưu tiên hàng đầu, cho dù sẽ đạt được thời gian phản hồi dưới giây cho các trang web động hay để cắt giảm thời gian để tạo các báo cáo qua đêm rất lớn.
Bên cạnh các câu lệnh SELECT
, các kỹ thuật điều chỉnh cho các truy vấn cũng áp dụng cho các cấu trúc như các điều khoản CREATE
TABLE...AS SELECT
, INSERT
INTO...SELECT
và WHERE
trong các câu lệnh DELETE
. Những tuyên bố này có các cân nhắc về hiệu suất bổ sung vì chúng kết hợp các hoạt động viết với các hoạt động truy vấn định hướng đọc.
Cụm NDB hỗ trợ tối ưu hóa lực đẩy tham gia, theo đó tham gia đủ điều kiện được gửi toàn bộ đến các nút dữ liệu cụm NDB, trong đó nó có thể được phân phối giữa chúng và được thực hiện song song. Để biết thêm thông tin về tối ưu hóa này, hãy xem các điều kiện cho NDB Pushdown tham gia.
Những cân nhắc chính để tối ưu hóa các truy vấn là:
Để làm cho truy vấn
SELECT ... WHERE
chậm nhanh hơn, điều đầu tiên cần kiểm tra là liệu bạn có thể thêm chỉ mục hay không. Thiết lập các chỉ mục trên các cột được sử dụng trong mệnh đềWHERE
, để tăng tốc độ đánh giá, lọc và truy xuất kết quả cuối cùng. Để tránh không gian đĩa bị lãng phí, xây dựng một tập hợp nhỏ các chỉ mục nhằm tăng tốc nhiều truy vấn liên quan được sử dụng trong ứng dụng của bạn.Các chỉ mục đặc biệt quan trọng đối với các truy vấn tham chiếu các bảng khác nhau, sử dụng các tính năng như tham gia và khóa nước ngoài. Bạn có thể sử dụng câu lệnh
EXPLAIN
để xác định chỉ số nào được sử dụng choSELECT
. Xem Phần & NBSP; 8.3.1, Cách MySQL sử dụng các chỉ mục và Phần & NBSP; 8.8.1, Tối ưu hóa các truy vấn với giải thích.Cô lập và điều chỉnh bất kỳ phần nào của truy vấn, chẳng hạn như một cuộc gọi chức năng, mất quá nhiều thời gian. Tùy thuộc vào cách cấu trúc truy vấn, một hàm có thể được gọi một lần cho mỗi hàng trong tập kết quả, hoặc thậm chí một lần cho mỗi hàng trong bảng, phóng đại đáng kể bất kỳ hiệu quả nào.
Giảm thiểu số lượng quét bảng đầy đủ trong các truy vấn của bạn, đặc biệt là cho các bảng lớn.
Giữ số liệu thống kê bảng cập nhật bằng cách sử dụng câu lệnh
SELECT
0 theo định kỳ, do đó trình tối ưu hóa có thông tin cần thiết để xây dựng một kế hoạch thực hiện hiệu quả.Tìm hiểu các kỹ thuật điều chỉnh, kỹ thuật lập chỉ mục và các tham số cấu hình dành riêng cho công cụ lưu trữ cho mỗi bảng. Cả
SELECT
1 vàSELECT
2 đều có bộ hướng dẫn cho phép và duy trì hiệu suất cao trong các truy vấn. Để biết chi tiết, xem Phần & NBSP; 8.5.6, Tối ưu hóa các truy vấn InnoDB và Phần & NBSP; 8.6.1, Tối ưu hóa các truy vấn của Myisam.Bạn có thể tối ưu hóa các giao dịch truy vấn đơn cho các bảng
SELECT
1, sử dụng kỹ thuật trong Phần & NBSP; 8.5.3, Tối ưu hóa các giao dịch chỉ đọc của InnoDB.Tránh chuyển đổi truy vấn theo những cách khiến nó khó hiểu, đặc biệt là nếu trình tối ưu hóa thực hiện một số phép biến đổi tương tự.
Nếu một vấn đề hiệu suất không dễ dàng được giải quyết bằng một trong các hướng dẫn cơ bản, hãy điều tra các chi tiết nội bộ của truy vấn cụ thể bằng cách đọc gói
EXPLAIN
và điều chỉnh các chỉ mục của bạn, các điều khoảnWHERE
, tham gia các điều khoản, v.v. [Khi bạn đạt được một mức độ chuyên môn nhất định, đọc kế hoạchEXPLAIN
có thể là bước đầu tiên của bạn cho mọi truy vấn.]Điều chỉnh kích thước và thuộc tính của các khu vực bộ nhớ mà MySQL sử dụng để lưu trữ. Với việc sử dụng hiệu quả nhóm bộ đệm
SELECT
1, bộ đệm khóaSELECT
2 và bộ đệm truy vấn MySQL, các truy vấn lặp lại chạy nhanh hơn vì kết quả được lấy từ bộ nhớ lần thứ hai và lần tiếp theo.Ngay cả đối với một truy vấn chạy nhanh bằng cách sử dụng các khu vực bộ nhớ bộ nhớ cache, bạn vẫn có thể tối ưu hóa hơn nữa để chúng yêu cầu ít bộ nhớ bộ nhớ cache hơn, giúp ứng dụng của bạn có thể mở rộng hơn. Khả năng mở rộng có nghĩa là ứng dụng của bạn có thể xử lý nhiều người dùng đồng thời hơn, các yêu cầu lớn hơn, v.v. mà không gặp phải hiệu suất giảm lớn.
Đối phó với các vấn đề khóa, trong đó tốc độ truy vấn của bạn có thể bị ảnh hưởng bởi các phiên khác truy cập các bảng cùng một lúc.