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

Giữ dữ liệu cộng với dữ liệu chỉ mục trong bộ nhớ - InnoDB so với MyISAM

  • 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 ().




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhiều câu lệnh chèn / cập nhật bên trong trình kích hoạt?

  2. Cách tối ưu hóa MySQL Views

  3. sắp xếp tùy chỉnh mysql

  4. Phân vùng bảng cơ sở dữ liệu trong MySQL

  5. Làm thế nào để chỉ định Ruby regex khi sử dụng Active Record trong Rails?