2012-04-12 44 views
6

Tôi đang chèn vào một bảng nhỏ đơn giản với 5 thuộc tính và 1000 hàng.Mysql: Chèn hiệu suất INNODB vs MYISAM

Tôi quan sát thấy khi động cơ là INNODB, mỗi lần chèn là 0,03 - 0,05 giây. Tôi đã đổi công cụ thành MYISAM, sau đó chèn nhanh hơn. nó đang dùng 0,001 - 0,003.

Vấn đề là gì. innodb_flush_log_trx_commit = 1 theo mặc định. Tôi đã thiết lập này như nó được. Đây là thiết lập innodb của tôi.

innodb_log_buffer_size : 1MB 
innodb_log_file_size : 5MB 
innodb_buffer_pool_size: 8MB 
innodb_flush_log_trx_commit = 1 

Tôi không thể tìm ra điều gì đã xảy ra với sự cố này. Cảm ơn trước. Trân trọng, UDAY

+0

Bạn nên cố gắng gửi bài này trên http://dba.stackexchange.com/ hoặc http://serverfault.com –

+0

nhờ mike. Tôi đã làm nó. – Uday

+0

Không có vấn đề gì, chúc may mắn. –

Trả lời

3

innodb_flush_log_at_trx_commit = 1 nghĩa là mỗi giao dịch được ghi vào bộ đệm nhật ký.

Đặt thành 0 để có hiệu suất tốt hơn, hoặc thậm chí tốt hơn hãy thử thực hiện tất cả các lần chèn trong một giao dịch (đừng quên cam kết cuối cùng).

Bạn có thể nhìn vào http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html để biết thêm chi tiết về innodb_flush_log_at_trx_commit và các biến khác

+0

Hi Argeman, Ở đây tôi lo ngại về lý do tại sao với biến này được đặt thành 1, nó cho thấy một số rất rất thấp thông qua đặt như chèn 120K mỗi giờ. Giữ một bên thay đổi giá trị này thành 2, điều có thể là lý do cho hiệu suất tồi tệ hơn này với giá trị này được đặt thành 1. – Uday

+0

Lý do là mỗi giao dịch được ghi vào bộ đệm nhật ký. Nếu bây giờ bạn thực hiện chèn mà không đưa chúng vào một giao dịch theo cách thủ công, mỗi giao dịch được thực hiện như một giao dịch, dẫn đến ghi vào đĩa. Một ghi vào đĩa mất khoảng 10-50ms trên một đĩa quay bình thường ... Điều đó có thể tốt hơn nếu bạn có bộ đệm ẩn pin trên bộ điều khiển đột kích hoặc SSD tuy nhiên – Argeman

+0

Do u thực sự có nghĩa là nó giống như giao dịch đơn lẻ trên máy chủ comodity sẽ mất 10 - 50 milli giây. Tôi không nghĩ vậy. Không ai có thể chấp nhận điều đó. Tôi có hiệu suất này không phải trên tất cả các máy chủ chỉ trên một vài máy chủ. – Uday

Các vấn đề liên quan