Trong bài viết này, chúng ta sẽ tìm hiểu và thảo luận về một số cài đặt điều chỉnh hiệu suất quan trọng cho MySQL mà chúng ta cần triển khai sau khi Cài đặt MySQL có hiệu suất nhanh hơn và tốt hơn.
Điều kiện tiên quyết
Giả sử rằng chúng ta đã cài đặt MySQL, tôi sẽ cung cấp một số mẹo trước khi chúng ta bắt đầu biết về cài đặt Điều chỉnh hiệu suất cho MySQL.
Ngay cả những người có kinh nghiệm CNTT cũng có thể mắc một số sai lầm dẫn đến nhiều vấn đề, vì vậy trước khi áp dụng bất kỳ khuyến nghị nào được trình bày trong bài viết này, chúng tôi sẽ ghi nhớ các mục dưới đây để tránh các vấn đề hoặc sự cố.
-
Chúng tôi sẽ chỉ áp dụng một cài đặt tại một thời điểm để chúng tôi có thể ước tính những thay đổi theo cách có lợi.
-
Hầu như tất cả các thay đổi có thể được thay đổi ở cấp thời gian chạy với “SET GLOBAL”, điều này rất dễ dàng nhất và cho phép chúng tôi thực hiện hoàn nguyên các thay đổi mà chúng tôi áp dụng và tạo ra bất kỳ sự cố nào. Cuối cùng, chúng tôi có thể áp dụng các thay đổi vĩnh viễn bằng cách cài đặt trong tệp cấu hình.
-
Nếu một thay đổi trong cấu hình không được áp dụng ngay cả sau khi khởi động lại dịch vụ (MySQL) thì có thể do tệp cấu hình không chính xác? Hay cài đặt có áp dụng cho phần bên phải không ?.
-
MySQL sẽ không cho phép các cài đặt trùng lặp. Nếu chúng tôi muốn theo dõi các thay đổi, chúng tôi đề xuất sử dụng kiểm soát phiên bản.
Một số Cài đặt MySQL Kiểm tra Hiệu suất
Dưới đây là một số cài đặt Điều chỉnh hiệu suất trong phần [mysqld] nơi chúng ta có thể tìm hiểu về một số cài đặt điều chỉnh hiệu suất. Bạn chỉ nên thay đổi các cài đặt này tại thời điểm cài đặt.
innodb_buffer_pool_size - Đây là cài đặt rất quan trọng cần xem xét ngay sau khi cài đặt bằng InnoDB. InnoDB là vùng đệm nơi dữ liệu được lập chỉ mục trong bộ nhớ đệm, có kích thước rất lớn có thể sẽ đảm bảo và sử dụng bộ nhớ không có dung lượng đĩa cho hầu hết các hoạt động đọc-ghi, thông thường kích thước của các giá trị InnoDB là 5 -6GB cho 8GB RAM.
innodb_log_file_size - Cài đặt này là để làm lại nhật ký. Các bản ghi làm lại đảm bảo rằng đọc và ghi nhanh và bền ngay cả tại thời điểm khôi phục sự cố, trong các phiên bản trước của MySQL 5.1, rất khó để thực hiện điều chỉnh vì chúng tôi cần một bản ghi làm lại rất lớn để có hiệu suất tốt hơn và nhỏ redo log là một phiên bản để khôi phục sự cố nhanh chóng của MySQL. Sau phiên bản MySQL 5.5, hiệu suất khôi phục sự cố được cải thiện. Giới hạn kích thước nhật ký làm lại của MySQL được giới hạn ở 4GB trong MySQL 5.5, hiện tại kích thước nhật ký làm lại đã bị loại bỏ trong MySQL 5.6.
max_connections - Để tránh lỗi "Quá nhiều kết nối", chúng tôi phải tăng max_connections, các kết nối mặc định là 151, nhược điểm chính của các giá trị cao cho max_connections làm cho máy chủ không phản hồi nếu không có kết nối nhiều hơn và các giao dịch đang hoạt động.
Innodb_log_buffer_size - Cài đặt này là kích thước của bộ đệm cho các giao dịch chưa được cam kết. Giá trị mặc định là 1MB, vì chúng tôi có các giao dịch lớn với các trường văn bản / blog, kích thước bộ đệm sẽ lấp đầy rất nhanh hơn và kích hoạt tải đầu vào và đầu ra bổ sung, chúng tôi có thể tăng innodb_log_buffer_size.
Innodb_flush_method - Cài đặt này để kiểm soát cách nhật ký và dữ liệu được chuyển vào đĩa. Các giá trị tốt nhất là O_DIRECT khi chúng tôi có phần cứng bộ điều khiển RAID với bộ nhớ đệm ghi lại và đồng bộ hóa dữ liệu cho hầu hết các tình huống. Sysbench là một công cụ tốt giúp bạn chọn các giá trị.
query_cache_size - Cài đặt này nổi tiếng về nút cổ chai mà chúng ta có thể thấy ngay cả khi chúng ta có mức độ đồng thời vừa phải. Tùy chọn tốt nhất là tắt nếu ngay từ đầu, để tắt chúng tôi cần gửi query_cache_size =0 nếu chúng tôi đang sử dụng phiên bản MySQL 5.6 theo mặc định, nó đã bị vô hiệu hóa. Ví dụ, chúng tôi có những cách khác để tăng tốc độ lập chỉ mục bằng cách sử dụng Memcache hoặc Redis. Nếu chúng tôi đã định cấu hình ứng dụng với bộ đệm truy vấn được bật và chúng tôi không gặp bất kỳ sự cố nào thì bộ đệm truy vấn rất hữu ích, chúng tôi cần phải hết sức thận trọng để tắt bộ đệm truy vấn.
log_bin - Cài đặt này rất hữu ích nếu chúng ta muốn đặt máy chủ làm máy chủ nhân bản chính. Nó cũng rất hữu ích cho một máy chủ duy nhất khi chúng tôi muốn có thể thực hiện (tại chỗ) khôi phục bản sao lưu mới nhất và áp dụng các bản ghi nhị phân. Sau khi bật nhật ký log_bin được lưu giữ vĩnh viễn và chúng tôi cần xóa các nhật ký cũ hơn để tiết kiệm dung lượng ổ đĩa trên máy chủ, chúng tôi có thể thực hiện bằng cách cài đặt PURGE BINARY LOGS hoặc bằng cách đặt cài đặt expire_logs_days bằng cách chỉ định log_bin sau bao nhiêu ngày nhật ký sẽ tự động bị xóa.
ignore_name_resolve - Cài đặt này được sử dụng đầy đủ khi máy khách kết nối với máy chủ MySQL. Máy chủ sẽ thực hiện phân giải tên máy chủ và khi DNS chậm, kết nối cũng sẽ trở nên rất chậm, vì vậy chúng ta nên khởi động máy chủ với bỏ qua tên_mục_sản để tắt tra cứu DNS, vì vậy khi chúng ta sử dụng các câu lệnh GRANT, chúng ta phải sử dụng địa chỉ IP thay vì tên máy chủ, Do đó, hãy cẩn thận khi chúng tôi thêm cài đặt này vào cấu hình ứng dụng hiện có.
Trong bài viết trên, chúng ta đã học cách điều chỉnh MySQL để mang lại hiệu suất tốt hơn và tăng tốc độ đọc và ghi của MySQL bằng cách thay đổi log_bins, ignore_name_resolve, query_cache_size, innodb_log_buffer_size, max_connections, innodb_log_file_size, innodb_buffer_pool_size.