2011-03-14 45 views
5

Tỷ lệ phạt hiệu suất chuyển đổi từ cookieStore sang ActiveStore SessionStore như thế nào?hiệu suất của ActiveRecord SessionStore

Theo mặc định, Ruby on Rails sử dụng CookieStore. Nhưng nó có những bất lợi mà khách hàng cần phải có cookie của nó được kích hoạt.

Chuyển sang phiên làm việc đang hoạt động dường như giải quyết vấn đề đó. Tôi đang xem xét chuyển đổi.

Tôi đọc hiệu suất đó tồi tệ hơn khi sử dụng ActiveStore SessionStore. Nhưng điều gì tệ hơn? Người dùng có nhận thấy điều này hay chỉ là một phần nghìn giây? Bất kỳ ai đã thấy kết quả benchmark so sánh 2 lựa chọn?

Bất kỳ lý do nào khác (không) để chuyển sang Phiên làm việc ActiveRecord?

Trả lời

4

Điều tệ hơn là cần truy vấn cơ sở dữ liệu, sau đó cần tính toán câu trả lời, thay vì đi thẳng đến cookie ở phía máy khách.

Tuy nhiên nó thực sự là xấu? Bạn là chính xác trong đó sự khác biệt hiệu suất là rất rất nhỏ trong hầu hết các trường hợp.

Ưu điểm:

chung sở thích Nếu ứng dụng web của bạn bao giờ mở rộng để nhiều hơn một máy chủ, di chuyển các phiên của bạn đến một cơ sở dữ liệu có thể cho phép bạn chạy các máy chủ của bạn mà không server affinity.

Bảo mật - Vì bạn chỉ lưu ID phiên ở phía máy khách, điều này làm giảm khả năng người dùng thao tác bất kỳ dữ liệu nào qua phía máy khách.

Nhược điểm

Performance - Thay vì truy vấn cơ sở dữ liệu, bạn chỉ có thể đọc dữ liệu phiên/cookie từ phía khách hàng.

+0

Tuyệt vời, tôi sẽ thử. –

4

Nhưng cửa hàng phiên AR cũng phụ thuộc vào cookie - nó lưu id phiên ở đó.

Theo như tôi biết không có cách nào để làm cho phiên Rails hoạt động với cookie bị tắt.

+0

có, bạn nói đúng, câu hỏi không liên quan, vì tôi thực sự đang tìm kiếm một giải pháp để kích hoạt các phiên không có cookie. Điều đó là không thể. Tôi đã thêm thông báo vào ứng dụng của mình để cho phép cookie khi chúng bị mất cân bằng. cảm ơn! –