Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

10 mẹo hữu ích về điều chỉnh hiệu suất MySQL

Giống như tất cả các cơ sở dữ liệu khác, MySQL có thể phức tạp và có thể dừng lại ngay lập tức để đưa tất cả các công việc và doanh nghiệp của bạn vào hoạt động. Tuy nhiên, những sai lầm phổ biến là cơ sở của hầu hết các vấn đề ảnh hưởng đến hiệu suất.

Để đảm bảo máy chủ của bạn hoạt động hiệu quả và hiệu quả bằng cách cung cấp hiệu suất ổn định và nhất quán, bạn phải loại bỏ những sai lầm thường gây ra do một số sai lầm trong khối lượng công việc hoặc bẫy cấu hình.

Khi khối lượng dữ liệu ngày càng lớn, nó ngày càng trở nên phức tạp. Do đó, điều cần thiết là phải tối ưu hóa tốt cơ sở dữ liệu để mang lại trải nghiệm hiệu quả cho người dùng cuối. Điều chỉnh hiệu suất MySQL là giải pháp cuối cùng vì nó sẽ giúp cung cấp giải pháp cho các vấn đề cơ sở dữ liệu này.

Điều chỉnh Hiệu suất MySQL

Trong bài viết này, bạn sẽ tìm thấy một số mẹo hữu ích về cách sử dụng điều chỉnh hiệu suất MySQL. Điều này sẽ giúp bạn có được hiệu suất tốt nhất từ ​​MySQL của mình.

Bước 1:Không sử dụng MySQL làm hàng đợi

Nếu không có sự nhận ra của bạn, hàng đợi và các mẫu giống như hàng đợi có thể xâm nhập vào ứng dụng của bạn. Một ví dụ điển hình là đánh dấu email là chưa gửi, gửi đi, sau đó đánh dấu là đã gửi. đây là một vấn đề phổ biến nhưng hiếm khi không đáng chú ý mà hầu hết người dùng có xu hướng bỏ qua.

Chúng gây ra hai phức tạp về hiệu suất chính:

  1. Chúng tuần tự hóa khối lượng công việc của bạn, do đó ngăn các nhiệm vụ được hoàn thành theo trình tự song song. Ngoài ra, chúng thường dẫn đến một bảng chứa dữ liệu lịch sử và công việc từ các công việc đã được xử lý cách đây khá lâu. Điều này thường làm chậm tốc độ và quá trình xử lý.
  2. Cả hai đều thêm độ trễ cho ứng dụng và tải vào MySQL.

Bước 2:Lập hồ sơ khối lượng công việc của bạn

Lập hồ sơ khối lượng công việc của bạn là điều cần thiết vì nó giúp bạn hiểu cách máy chủ của mình hoạt động và thời gian nó dành để xử lý các tác vụ. Công cụ tốt nhất để giúp bạn làm điều này là trình phân tích truy vấn MySQL Enterprise Monitors từ bộ công cụ Percona.

Lưu ý: Chỉ khả dụng cho người dùng Linux

Các công cụ này có thể nắm bắt các truy vấn được thực thi bởi máy chủ và trả về một bảng các tác vụ đã được sắp xếp để giảm thứ tự thời gian phản hồi.

Lập hồ sơ khối lượng công việc của bạn cho thấy các truy vấn đắt nhất để điều chỉnh thêm. Thời gian là quan trọng nhất vì điều quan trọng là thời gian hoàn thành nhanh như thế nào khi đưa ra một truy vấn.

Các công cụ lập hồ sơ cũng nhóm các truy vấn tương tự, cho phép bạn xem các truy vấn chậm và truy vấn nhanh nhưng được thực thi nhiều lần.

Bước 3:Tìm hiểu Bốn Nguồn lực Cơ bản

CPU, bộ nhớ, đĩa và mạng là bốn tài nguyên cơ bản cần thiết để cơ sở dữ liệu hoạt động. Do đó, cơ sở dữ liệu có khả năng hoạt động kém nếu bất kỳ tài nguyên nào trong số này bị quá tải, yếu hoặc thất thường.

Bạn phải luôn đảm bảo rằng tất cả bốn tài nguyên được đề cập đều mạnh mẽ và ổn định để MySQL hoạt động hoàn hảo. Các tổ chức thường chọn những máy chủ có CPU và đĩa nhanh có thể chứa nhiều khe cắm bộ nhớ hơn.

Thêm bộ nhớ là một cách rẻ và dễ dàng để tăng hiệu suất theo cấp độ lớn, đặc biệt là trên các khối lượng công việc bị ràng buộc bởi đĩa. Điều này có vẻ không hợp lý, nhưng nhiều đĩa được sử dụng quá mức do không có đủ bộ nhớ để chứa tập dữ liệu đang hoạt động của máy chủ.

Khi khắc phục sự cố, hãy kiểm tra hiệu suất và việc sử dụng tất cả bốn tài nguyên một cách cẩn thận để giúp xác định thống kê hiệu suất của bốn tài nguyên. Theo dõi hiệu suất của chúng là rất quan trọng vì nó giúp người dùng biết những gì nên được cải thiện hoặc cần thay thế. Bạn có thể thử phương pháp này vì nó là một trong những phương pháp nhanh nhất để giải quyết các vấn đề về hiệu suất trong MYSQL.

Bước 4:Lọc kết quả theo giá rẻ nhất đầu tiên

Một cách tuyệt vời để tối ưu hóa là thực hiện công việc rẻ tiền, không chính xác trước, sau đó thực hiện công việc khó, chính xác trên công việc nhỏ hơn, dẫn đến tập dữ liệu.

Ví dụ:

Giả sử bạn đang tìm kiếm thứ gì đó trong bán kính nhất định của một điểm địa lý. Công cụ đầu tiên trong hộp công cụ của lập trình viên của tôi là công thức Haversine {Great circle} để tính toán khoảng cách dọc theo bề mặt của một hình cầu.

Vấn đề với kỹ thuật này là công thức yêu cầu nhiều phép toán lượng giác, rất nhạy cảm với CPU. Do đó, các phép tính có xu hướng chạy chậm và khiến việc sử dụng CPU của máy tăng vọt.

Trước khi sử dụng công thức, hãy chia nhỏ các bản ghi của bạn thành một tập hợp con nhỏ trong tổng số và cắt tập hợp kết quả thành một vòng tròn chính xác. Hình vuông có chứa hình tròn, cho dù chính xác hay không chính xác, là một cách dễ dàng để thực hiện điều này. Điều này đảm bảo thế giới bên ngoài hình vuông không bao giờ bị ảnh hưởng bởi tất cả những hàm lượng giác tốn kém đó.

Bước 5:Biết và hiểu hai bẫy tử thần khả năng mở rộng.

Khả năng mở rộng có thể không mơ hồ như nhiều người lầm tưởng. Thay vào đó, có những định nghĩa toán học chính xác về khả năng mở rộng được biểu thị dưới dạng các phương trình làm nổi bật lý do tại sao các hệ thống không mở rộng quy mô tốt như chúng nên làm.

Luật khả năng mở rộng phổ quát là một định nghĩa hữu ích trong việc diễn đạt và định lượng các đặc tính về khả năng mở rộng của hệ thống. Nó giải thích các vấn đề mở rộng quy mô về tuần tự hóa và xuyên âm, là hai chi phí cơ bản.

Các quy trình song song phải dừng để một thứ gì đó được tuần tự hóa diễn ra vốn bị hạn chế về khả năng mở rộng của chúng. Hơn nữa, nếu các quá trình song song cần giao tiếp với nhau để điều phối công việc, chúng sẽ hạn chế lẫn nhau. Do đó, bạn nên tránh tuần tự hóa và xuyên âm để cho phép ứng dụng của bạn mở rộng quy mô nhanh chóng và hiệu quả.

Bước 6:Không tập trung quá nhiều vào cấu hình

Mọi người dành quá nhiều thời gian để điều chỉnh cấu hình. Kết quả thường không phải là một cải thiện đáng kể và đôi khi có thể gây hại rất nhiều. Cài đặt mặc định đi kèm với MySQL có một kích thước không phù hợp và nó đã lỗi thời nên bạn không cần phải định cấu hình bất kỳ thứ gì.

Vì vậy, điều cần thiết là phải hiểu đúng những điều cơ bản và chỉ thay đổi cài đặt nếu cần. Trong nhiều trường hợp, các công cụ điều chỉnh máy chủ không được khuyến nghị vì chúng có thể đánh lừa người dùng với thông tin mâu thuẫn. Một số có lời khuyên nguy hiểm, không chính xác được mã hóa trong đó như tỷ lệ truy cập bộ nhớ cache và công thức tiêu thụ bộ nhớ.

Bước 7:Chú ý các Truy vấn Phân trang

Các ứng dụng phân trang thường đưa máy chủ xuống. Các tối ưu hóa thường có thể được tìm thấy trong chính giao diện người dùng khác. Ví dụ:thay vì hiển thị số trang chính xác trong kết quả và liên kết, bạn có thể chỉ hiển thị một liên kết đến một trang chứa thông tin đó. Do đó, bạn có thể ngăn mọi người làm quá tải trang gốc.

Về phía truy vấn, thay vì sử dụng offset với giới hạn, bạn có thể chọn thêm một hàng và khi bạn nhấp vào “trang tiếp theo”, bạn có thể chỉ định hàng cuối cùng đó làm điểm bắt đầu cho tập kết quả tiếp theo.

Bước 8:Lưu thống kê một cách háo hức, cảnh báo một cách miễn cưỡng

Cảnh báo và giám sát là điều cần thiết nhưng điều xảy ra với hệ thống giám sát điển hình là nó bắt đầu gửi kết quả dương tính giả. Quản trị viên hệ thống thiết lập các quy tắc lọc email để ngăn chặn tiếng ồn và hệ thống giám sát của bạn sẽ sớm trở nên vô dụng.

Điều quan trọng là phải nắm bắt và lưu tất cả các số liệu mà bạn có thể có vì bạn sẽ rất vui khi có chúng khi cố gắng tìm ra những gì đã thay đổi trong hệ thống. Ngoài ra, khi một vấn đề lạ xảy ra, bạn sẽ có thể trỏ đến biểu đồ và dễ dàng theo dõi sự thay đổi trong khối lượng công việc của máy chủ.

Mọi người thường cảnh báo về những thứ như tỷ lệ truy cập bộ đệm hoặc số lượng bảng tạm thời được tạo mỗi giây. Vấn đề là không có bất kỳ ngưỡng hợp lý nào cho một tỷ lệ như vậy. Hơn nữa, ngưỡng phù hợp là khác nhau giữa các máy chủ và tùy từng thời điểm khi công việc của bạn thay đổi.

Do đó, cảnh báo một cách tiết kiệm và chỉ trong các điều kiện cho thấy một vấn đề xác định, có thể hành động được. Ví dụ:tỷ lệ truy cập bộ đệm thấp là không thể xử lý được, cũng không phải là vấn đề thực sự, nhưng máy chủ không phản hồi với nỗ lực kết nối là một vấn đề thực sự cần được giải quyết.

Bước 9:Tìm hiểu ba quy tắc lập chỉ mục

Đây là chủ đề bị hiểu lầm nhiều nhất trong cơ sở dữ liệu vì có nhiều cách để tìm hiểu về cách các chỉ mục hoạt động và cách máy chủ sử dụng chúng. Các chỉ mục, nếu được thiết kế phù hợp, sẽ phục vụ ba mục đích quan trọng trong máy chủ cơ sở dữ liệu;

  1. Thay vì các hàng đơn lẻ, các chỉ mục cho phép máy chủ tìm các nhóm các hàng liền kề. Nhiều người nghĩ rằng mục đích của các chỉ mục là để tìm các hàng riêng lẻ, nhưng việc tìm các hàng đơn lẻ dẫn đến các hoạt động ngẫu nhiên của đĩa, khiến máy chủ rất chậm. Tìm các nhóm hàng sẽ tốt hơn và thú vị hơn nhiều so với việc tìm từng hàng một.
  2. Nó cũng cho phép máy chủ tránh sắp xếp bằng cách đọc các hàng theo thứ tự mong muốn. Không giống như sắp xếp, đọc hàng sẽ nhanh hơn và ít tốn kém hơn nhiều.
  3. Các chỉ mục cũng cho phép máy chủ đáp ứng toàn bộ các truy vấn từ chỉ mục, tránh được nhu cầu truy cập vào máy tính bảng. Đây còn được gọi là chỉ mục covey hoặc truy vấn chỉ lập chỉ mục.

Bước 10:Tận dụng kiến ​​thức chuyên môn của các đồng nghiệp của bạn

Bạn có phiền không làm điều đó một mình? Việc phân vân trước các vấn đề và làm những gì có vẻ hợp lý và hợp lý đối với bạn có thể hiệu quả nhất nhưng không phải lúc nào cũng có tác dụng. Vì vậy, thay vào đó, hãy xây dựng một mạng lưới các tài nguyên liên quan đến MySQL vượt ra ngoài các bộ công cụ và hướng dẫn khắc phục sự cố.

Mọi người cực kỳ hiểu biết ẩn nấp trong danh sách gửi thư, diễn đàn, v.v. Ngoài ra, các hội nghị, buổi triển lãm và các sự kiện của nhóm người dùng địa phương cung cấp các cơ hội có giá trị để có được thông tin chi tiết và xây dựng mối quan hệ với các đồng nghiệp có thể giúp bạn.

Đối với một số ít người đang tìm kiếm các công cụ để bổ sung các mẹo này, bạn có thể xem Trình hướng dẫn cấu hình Percona cho các plugin theo dõi MySQL và MySQL Percona.

Trình hướng dẫn cấu hình có thể hỗ trợ bạn trong việc tạo đường cơ sở. tệp my.cnf dành cho máy chủ mới vượt trội so với tệp mẫu đi kèm với máy chủ.

Cố vấn truy vấn vượt trội hơn so với các tệp mẫu được gửi cùng với máy chủ. Cố vấn sẽ phân tích SQL của bạn để giúp phát hiện các mẫu có khả năng phá hủy chẳng hạn như truy vấn phân trang (mẹo 7).

Các plugin theo dõi Percona là một tập hợp các plugin theo dõi và vẽ đồ thị giúp bạn lưu các số liệu thống kê một cách háo hức và cảnh báo một cách miễn cưỡng (Bước 8). Tất cả những công cụ này đều có sẵn miễn phí.

Lợi ích của việc điều chỉnh hiệu suất

Lợi ích chính là, nó cho phép bạn tránh cung cấp quá mức và giảm chi phí bằng cách định cỡ phù hợp các dịch vụ của bạn. Nó cũng cung cấp cho bạn thông tin chi tiết về việc di chuyển lưu trữ dữ liệu hoặc tăng thêm dung lượng máy chủ có cải thiện hiệu suất hay không và nếu có, nó sẽ là bao nhiêu.

Một khi cơ sở dữ liệu được điều chỉnh chính xác, nó mang lại kết quả hiệu suất có lợi với các chức năng tuyệt vời. Nó không chỉ giảm tải tác vụ không mong muốn mà còn tối ưu hóa cơ sở dữ liệu MySQL để truy xuất dữ liệu nhanh hơn.

Các cài đặt khác có thể tạo ra sự khác biệt tùy thuộc vào khối lượng công việc hoặc phần cứng của bạn. Mục đích là cung cấp cho bạn một vài điều chỉnh hiệu suất MySQL để nhanh chóng có được cấu hình MySQL thuần thục mà không mất quá nhiều thời gian để thay đổi các cài đặt không cơ bản hoặc đọc tài liệu để hiểu cài đặt nào quan trọng với bạn.

Kết luận

Tóm lại, điều chỉnh hiệu suất mang lại nhiều lợi ích và nó được khuyến khích khi làm việc với các vùng dữ liệu lớn để cải thiện hiệu quả của máy chủ của bạn. Bằng cách làm theo các mẹo được đưa ra trong bài viết này, bạn sẽ có thể thực hiện điều chỉnh hiệu suất MySQL trên máy chủ và cơ sở dữ liệu của mình một cách thoải mái.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thay đổi mật khẩu gốc của MySQL hoặc MariaDB trong Linux

  2. Làm cách nào để sửa lỗi tải MySQL

  3. script để chuyển đổi tệp sql mysql dump thành định dạng có thể được nhập vào sqlite3 db

  4. Đặt lại mật khẩu gốc của MySQL trên Windows

  5. mysqli_fetch_array () mong muốn tham số 1 là mysqli_result, boolean được đưa vào