MySQL cache hoạt động khác nhau tùy thuộc vào việc bạn sử dụng công cụ lưu trữ MyISAM hay công cụ lưu trữ InnoDB.
MyISAM chỉ lưu vào bộ nhớ cache các chỉ mục, không phải dữ liệu. Bạn có thể sử dụng LOAD INDEX INTO CACHE
để tải trước các chỉ mục MyISAM vào bộ nhớ đệm của bộ đệm khóa. Nhưng không có câu lệnh tương đương nếu bạn sử dụng InnoDB.
InnoDB lưu trữ cả dữ liệu và trang chỉ mục. Không có lệnh chuyên dụng nào để làm nóng bộ đệm cache, nhưng bạn có thể thực thi một số câu lệnh SQL thực hiện quét toàn bộ bảng và quét chỉ mục đầy đủ để tải chúng vào bộ đệm. Bạn có thể thực hiện việc này bằng cách sử dụng tập lệnh trên máy chủ mà không cần dùng đến wget
!
Tôi đồng ý với câu trả lời từ @code_burgar:150 nghìn hàng đủ nhỏ để bạn không nhận thấy nhiều hình phạt về hiệu suất trong khi bộ nhớ cache đang nóng lên.
Nếu bạn đang nói về việc khởi động Bộ nhớ đệm truy vấn , đó là một vấn đề khác. Bạn sẽ phải làm nóng Bộ đệm truy vấn bằng cách sử dụng các truy vấn SQL cụ thể, vì bộ đệm đó giữ các tập kết quả được liên kết với các truy vấn SQL đó một cách nguyên văn. wget
của bạn giải pháp không hiệu quả và có thể trùng lặp nhiều công việc. Bạn sẽ có thể sử dụng bộ nhớ cache truy vấn bằng cách chạy một tập lệnh trên máy chủ thực thi từng truy vấn mà bạn muốn lưu vào bộ nhớ cache một lần .
Nhưng bạn có thể cần phải xem lại mã để tìm ra những truy vấn đó là gì và cập nhật định kỳ tập lệnh tải trước trong bộ nhớ cache nếu mã của bạn thay đổi.