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

mysql chậm trên truy vấn đầu tiên, sau đó nhanh cho các truy vấn liên quan

Các trang của tệp dữ liệu innodb được lưu vào bộ nhớ đệm trong vùng đệm innodb. Đây là những gì bạn mong đợi. Đọc tệp chậm, ngay cả trên ổ cứng tốt, đặc biệt là đọc ngẫu nhiên, phần lớn là những gì cơ sở dữ liệu nhìn thấy.

Có thể là truy vấn đầu tiên của bạn đang thực hiện một kiểu quét bảng nào đó kéo rất nhiều trang vào vùng đệm, sau đó truy cập chúng rất nhanh. Hoặc một cái gì đó tương tự.

Đây là những gì tôi mong đợi.

Tốt nhất, hãy sử dụng cùng một công cụ cho tất cả các bảng (ngoại lệ:bảng hệ thống, bảng tạm thời (có thể) và bảng rất nhỏ hoặc những bảng tồn tại trong thời gian ngắn). Nếu bạn không làm điều này thì họ phải tranh giành ram.

Giả sử tất cả các bảng của bạn đều là innodb, hãy làm cho vùng đệm sử dụng tối đa 75% ram vật lý của máy chủ (giả sử bạn không chạy quá nhiều tác vụ khác trên máy).

Sau đó, bạn sẽ có thể lắp khoảng 12G cơ sở dữ liệu của mình vào ram, vì vậy một khi nó được "làm ấm", 12G "được sử dụng nhiều nhất" của cơ sở dữ liệu của bạn sẽ ở trong ram, nơi việc truy cập nó rất tốt và nhanh chóng.

Một số người dùng mysql có xu hướng "hâm nóng" máy chủ sản xuất sau khi khởi động lại bằng cách gửi cho họ các truy vấn được sao chép từ máy khác trong một thời gian (những truy vấn này sẽ là nô lệ sao chép) cho đến khi họ thêm chúng vào nhóm sản xuất của mình. Điều này giúp tránh tình trạng quá chậm khi bộ nhớ cache nguội. Ví dụ:Youtube làm điều này (hoặc ít nhất là trước đây; Google đã mua chúng và bây giờ họ có thể sử dụng Google-fu)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định cấu hình nhóm kết nối GlassFish JDBC để xử lý chuyển đổi dự phòng Amazon RDS Multi-AZ

  2. SQL:chọn các hàng trong đó giá trị cột đã thay đổi so với hàng trước đó

  3. Cách nhận các giá trị hàng của một chế độ xem dữ liệu và chuyển nó sang một biểu mẫu khác bằng cách sử dụng một nút trong hàng cùng tên

  4. Lỗi 1062 - Mục nhập trùng lặp '127' cho khóa 'CHÍNH' - không thể tìm thấy lý do

  5. Còn gì hiệu quả hơn - lưu trữ nhật ký trong cơ sở dữ liệu hoặc tệp sql?