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

Tôi có nên hy sinh innodb_buufer_pool _size / RAM của mình để tạo không gian cho query_cache_size không?

Vào tháng 6 năm 2014, tôi đã trả lời https://dba.stackexchange.com/questions/66774/why-query-cache-type-is-disabled-by-default-start-from-mysql-5 -6 / 66796 # 66796

Trong bài đăng đó, tôi đã thảo luận về cách các vi quản lý InnoDB thay đổi giữa Nhóm đệm InnoDB và Bộ đệm truy vấn.

KHÔNG SỬ DỤNG QUERY CACHE

Câu trả lời đơn giản nhất là chỉ cần vô hiệu hóa bộ đệm truy vấn, nhưng có một vấn đề:Bạn phải đặt cả query_cache_size query_cache_type thành không (0).

Nếu bạn không đặt query_cache_type về không (0), việc quản lý vi mô của các thay đổi vẫn xảy ra. Điều này được xác minh bởi những gì Đoạn 8 của MySQL Tài liệu "Cấu hình bộ nhớ đệm truy vấn" nói

SỬ DỤNG QUERY CACHE

Nếu bạn thực sự muốn sử dụng Bộ đệm truy vấn, thì bạn cần nghiên cứu dữ liệu của mình. Về cơ bản, bạn cần biết kích thước kết quả của mình. Sau đó, bạn sẽ đặt query_cache_limit query_cache_min_res_unit để phù hợp với tập kết quả kích thước trung bình cũng như tập kết quả kích thước tối đa.

Thay vào đó, bạn có thể bật Bộ đệm truy vấn trên toàn cầu nhưng vô hiệu hóa việc sử dụng nó khỏi Phiên DB của bạn như đã nêu trong Đoạn 9 :

CÂU HỎI THỰC TẾ CỦA BẠN

Bộ nhớ đệm truy vấn, Nhóm đệm InnoDB, Mỗi chuỗi kết nối (Xem bài đăng của tôi https://dba.stackexchange.com/questions/16969/how-costly-is-opening-and-closing-of-a-db-connection/ 16973 # 16973 ) và hệ điều hành đều cạnh tranh về RAM.

Khi chỉ nhìn vào Bộ đệm truy vấn và Nhóm đệm InnoDB, bạn cần xem còn bao nhiêu dung lượng trống trong Nhóm đệm InnoDB sau khi MySQL đã chạy trong vài ngày hoặc vài tuần.

Bạn có thể chạy truy vấn này

SELECT variable_value / 64 free_mb
FROM information_schema.global_status
WHERE variable_name='Innodb_buffer_pool_pages_free';

Điều này sẽ cho bạn biết bạn có thể giảm Nhóm đệm InnoDB xuống bao nhiêu. Sau đó, bạn có thể tăng Bộ nhớ cache truy vấn bằng kích thước đó. Nếu truy vấn này trả về ít hơn 1024, nó có thể không đáng để nỗ lực. Bạn sẽ có thêm dung lượng từ RAM hoặc chỉ cần tắt Bộ nhớ cache truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nối 2 bảng trên cột thay đổi động

  2. Làm cách nào để trích xuất hai chữ số liên tiếp từ một trường văn bản trong MySQL?

  3. Khi nào sử dụng MongoDB hoặc các hệ thống cơ sở dữ liệu hướng tài liệu khác?

  4. Hiển thị tất cả các bảng bên trong cơ sở dữ liệu MySQL bằng PHP?

  5. đặt hàng theo XXX sắp xếp theo ASC hoặc DESC, đặt hàng động, mysql ...