- Không có MyISAM không có bộ đệm dữ liệu cho mục đích chung. Điều này được ghi lại trong mô tả "key_buffer_size" từ tài liệu chính thức
:
This is because MySQL relies on the operating system to perform file system caching for data reads, so you must leave some room for the file system cache.
Các hệ điều hành hiện đại, đặc biệt là Linux, có xu hướng có các hệ thống con bộ nhớ ảo rất thông minh sẽ giữ các tệp được truy cập thường xuyên trong bộ đệm trang, do đó I / O đĩa được giữ ở mức tối thiểu khi bộ hoạt động phù hợp với bộ nhớ khả dụng.
- Vì vậy, để trả lời câu hỏi thứ hai của bạn:không bao giờ.
Điều quan trọng là không rơi vào "quá kích thước bộ đệm" đối với các biến myisam khác nhau như read_buffer_size, read_rnd_buffer_size, sort_buffer_size, join_buffer_size, v.v. vì một số được cấp phát động, vì vậy lớn hơn không phải lúc nào cũng có nghĩa là nhanh hơn - và đôi khi nó thậm chí có thể chậm hơn - xem bài đăng này trên mysqlperformanceblog để biết một trường hợp rất thú vị.
Nếu bạn đang sử dụng 5.1 trên nền tảng posix, bạn có thể muốn điểm chuẩn myisam_use_mmap về khối lượng công việc của bạn, nó phải giúp các trường hợp tranh chấp cao bằng cách giảm số lượng lệnh gọi malloc ().