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

Hiệu suất MySQL - 5 tham số từ tệp cấu hình

Trước đó, tôi đã viết một bài đăng trên blog về Hiệu suất MySQL - Truy vấn chậm và innodb_buffer_pool_size . Tôi nhận được rất nhiều email mà mọi người muốn biết thêm về các thông số như vậy. Hãy để chúng tôi thảo luận về 5 tham số từ tệp cấu hình có thể giúp hiệu suất MySQL.

innodb_buffer_pool_size

Trong vùng đệm dữ liệu được lưu vào bộ nhớ đệm. Nếu nó có kích thước nhỏ, đĩa của bạn sẽ được sử dụng nhiều hơn. Giữ cái này lớn để tránh MySQL đi vào đĩa nhiều lần. Kích thước điển hình mà tôi thấy tại nơi ở của khách hàng là từ 6 đến 10 GB.

max_connections

Bạn có thể dễ dàng tránh được quá nhiều lỗi kết nối nếu giữ mức này đủ lớn. Tuy nhiên, nếu bạn giữ nó quá lớn so với những gì máy chủ của bạn có thể xử lý, bạn sẽ bắt đầu gặp lại các vấn đề về hiệu suất. Điều rất quan trọng là phải giữ cho nó đủ lớn để nó có thể xử lý khối lượng công việc điển hình của bạn và do đó bạn nên thêm nhiều tài nguyên hơn. Tôi thường thay đổi điều này đầu tiên và sau đó trên các tài nguyên được điều chỉnh cho khách hàng của tôi.

query_cache_size

Mọi người đều biết rằng nếu bạn giữ kích thước của tập hợp này rất thấp hoặc cao, hiệu suất của bạn sẽ rất khủng khiếp. Tuy nhiên, tôi đã thấy rất nhiều người bỏ qua cài đặt này. Tôi thường bắt đầu điều chỉnh MySQL bằng cách xem cài đặt này và giữ nó ở mức 0. Điều này có nghĩa là cài đặt này bị tắt và tôi sử dụng các phương pháp khác để điều chỉnh các truy vấn của mình. Tôi thường thích điều chỉnh các chỉ mục của mình hơn phương pháp này.

innodb_flush_method

Cài đặt này kiểm soát cách dữ liệu và nhật ký được chuyển vào đĩa từ bộ nhớ. Tôi thường giữ nó O_DIRECT để tránh bộ đệm kép. Tôi đã nhận thấy rằng bộ đệm kép thường làm giảm hiệu suất của máy chủ.

Các cài đặt tôi đã đề cập ở trên có liên quan đến Hiệu suất MySQL và chúng có thể được thay đổi từ tệp cấu hình. Bạn có thể tìm thấy tệp cấu hình MySQL tại vị trí ở đây trong Linux:/etc/mysql/my.conf

Tuy nhiên, trước khi bạn thay đổi bất kỳ cài đặt nào trong sản xuất, tôi thực sự khuyên bạn nên thử chúng trong hệ thống nhà phát triển của mình. Rất có thể trải nghiệm của bạn khác với trải nghiệm của tôi và bạn cần một giá trị khác cho máy chủ của mình.

Nếu bạn thích blog này, xin đừng quên đăng ký Kênh YouTube của tôi - SQL in Sixty Seconds .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chuyển đổi chuỗi ngày thành trường datetime của mysql

  2. Tính toán phần trăm từ lần truy cập gần đây trong MySQL

  3. Làm cách nào để chèn giá trị trong bảng bằng khóa ngoại bằng MySQL?

  4. Ngăn chặn tự động gia tăng trên chèn trùng lặp MySQL

  5. MySQL - Khôi phục cơ sở dữ liệu giản đồ hiệu suất bị giảm