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

Sự khác biệt về thời gian cần thiết để chèn các bản ghi InnoDB / MyISAM

Không rõ bạn đã bật cài đặt độ bền nào trong MyISAM hoặc Innodb, cũng như việc bạn đang sử dụng chèn hàng đơn hay chèn hàng loạt trong cả hai trường hợp.

Nếu bạn đang sử dụng chèn một hàng, bạn không sử dụng các giao dịch và bạn đã bật độ bền (cài đặt mặc định trong InnoDB), thì bạn có thể thấy hiệu suất của InnoDB bị hạn chế nghiêm trọng bởi yêu cầu cam kết mỗi giao dịch vào bộ nhớ lâu bền ( tức là đĩa) sau mỗi lần chèn hàng.

MyISAM không có vấn đề như vậy, vì dù sao thì nó cũng không bền, tức là nếu máy bị treo, bạn ít nhiều được đảm bảo sẽ mất một số dữ liệu được ghi gần đây mà cơ sở dữ liệu đã xác nhận trước đó đã được ghi thành công (nếu không phải là toàn bộ bảng!).

Nếu bạn muốn có hiệu suất chèn tốt, hãy sử dụng chèn hàng loạt và / hoặc giao dịch, nếu không, bạn chỉ đo tốc độ ghi, theo sau là fsync (), (trên bộ điều khiển RAID không sử dụng pin trên phương tiện từ trường quay) là chỉ là tốc độ quay đĩa của bạn.

Vì vậy, lý do innodb rất nhất quán là bạn đang đo tốc độ quay của đĩa.

Phải nói rằng, nếu bạn có một máy chủ bận, bạn chắc chắn, hoàn toàn muốn sử dụng bộ điều khiển RAID được hỗ trợ bằng pin, khi đó bạn có thể đạt được hiệu suất cam kết giao dịch tốt VÀ độ bền thích hợp (Giả sử nguồn điện không hỏng trong thời gian dài hơn thời lượng pin, và máy chủ không phát nổ, v.v.).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thiết kế cơ sở dữ liệu để phát triển ứng dụng web 'Quiz' bằng PHP và MySQL

  2. Thực thi các trình kích hoạt được lưu trữ trên SqlFiddle. Mysql

  3. Thư viện Php Mô hình Tập hợp lồng nhau

  4. MySql - HAVING so với WHERE

  5. MySQL CURRENT_TIMESTAMP dưới dạng DEFAULT