Bài đăng trên blog này cho thấy kết quả so sánh hiệu suất của các công cụ lưu trữ phiên khác nhau với Magento và dường như họ đã kết luận rằng có tới khoảng 75 người dùng đồng thời không thực sự có sự khác biệt về hiệu suất giữa chúng.
Tôi nghĩ rằng ở các cấp độ này (chúng có khoảng 5 giao dịch một giây, tương đương khoảng 430 nghìn lượt truy cập trong khoảng thời gian 12 giờ), chi phí trong mọi thứ khác chi phối các số hiệu suất bạn thấy vì tệp / DB / Memcache / Redis sẽ vui vẻ xử lý giao thông mà không đổ mồ hôi nếu sử dụng đúng cách.
Điều đó để lại các yếu tố khác như khả năng mở rộng, độ tin cậy và bảo mật.
Trước tiên tôi muốn nói rằng bất cứ điều gì ảnh hưởng đến việc lưu trữ tệp của bạn cũng có thể sẽ thỏa hiệp bất cứ điều gì khác vì kẻ tấn công sau đó có thể sửa đổi mã ứng dụng của bạn hoặc ít nhất là khám phá các khóa và giao thức / thông tin truy cập lưu trữ ngay cả khi chúng chỉ đọc truy cập. Lưu trữ tệp sẽ hoạt động tốt cho một trang web khối lượng thấp, dễ thiết lập và dễ lý do. Nhiều như bạn nói bạn đã đánh vào đĩa, một lần đọc DB cũng sẽ đánh vào đĩa và nếu DB có thể lưu trữ nó, hệ điều hành của bạn cũng có thể đã lưu vào tệp phiên. Ngoài ra, một tệp của nó được đọc và hệ thống tệp của bạn rất tuyệt vời khi nhận được nó nếu bạn đã biết tên của nó. Nếu bạn đang sử dụng PHP, bạn có biết hệ thống phải đọc bao nhiêu tệp chỉ để phục vụ ứng dụng của bạn không? Nhược điểm là bạn có thể '
Memcache tương đối nhanh và nếu bạn đang xem xét các giải pháp lớp Memcache rộng hơn (Redis, v.v.), có một số thậm chí sẽ hứa hẹn sự kiên trì với tốc độ đọc bộ nhớ để bạn có được hầu hết cả hai thế giới. Chúng cũng tương đối đơn giản để lý do và bản chất giá trị khóa của các phiên là chính xác những gì chúng đã được thiết kế để làm. Bạn có biết bạn sẽ phải bỏ bao nhiêu tiền vào một phiên để điền vào một trong số này không? Dù bằng cách nào, tất cả các lựa chọn của bạn sẽ buộc bạn phải thỏa hiệp nếu bạn đạt được năng lực của họ. Đĩa chứa đầy các tệp (yếu tố số lượng và kích thước ở đây), các bộ lưu trữ bộ đệm chứa đầy dung lượng và cơ sở dữ liệu có số lượng hàng hạn chế và giới hạn dung lượng đĩa giống như cách tiếp cận tệp. Ngoài ra, các hệ thống này chỉ được phân phối nếu bạn chạy chúng theo kiểu phân tán. Hầu hết chỉ hoạt động tốt với một thiết lập máy chủ duy nhất. Nếu bạn phân phối chúng thì có lẽ bạn đã có máy chủ web / máy chủ cơ sở dữ liệu phân phối, v.v. nên các vấn đề hệ thống phân tán của bạn chắc chắn sẽ không xuất hiện từ lựa chọn lưu trữ phiên của bạn. Tuy nhiên, khi bạn muốn tăng gấp 10 lần lưu lượng / dung lượng, v.v., việc này sẽ trở nên tự nhiên hơn nhiều so với sơ đồ lưu trữ tệp. Một số cửa hàng khóa / giá trị cũng sẽ cho phép bạn tiến hành phân tích đơn giản dữ liệu phiên tương đối dễ dàng nhưng hầu hết sẽ không đưa bạn đến bất cứ nơi nào gần những gì SQL có thể làm.
Tôi không chắc tại sao bạn đề xuất cơ sở dữ liệu đó có thể đáng tin cậy hơn các tùy chọn khác, nhưng tôi nhận được sự hấp dẫn của cơ sở dữ liệu vì ứng dụng PHP của bạn có thể đã sử dụng nó. Điều này có nghĩa là bạn không thêm phụ thuộc máy chủ khác và có thể bạn có thể sử dụng lại cùng một kết nối bạn sử dụng để tìm nạp dữ liệu phiên để lấy dữ liệu người dùng để bạn không phải thiết lập một cho dữ liệu, một cho Memcache, v.v. Nếu bạn lập chỉ mục bảng tốt, nó cũng sẽ thực hiện nhanh chóng hợp lý và cung cấp ngữ nghĩa khá đơn giản mà bạn đã quen thuộc để gặt hái các phiên cũ hoặc thậm chí phân tích dữ liệu phiên (Tôi không chắc tại sao bạn lại muốn và nếu bạn không, thì điều này có lẽ không ' vấn đề rất nhiều). Mở rộng quy mô lớn không tầm thường như với Redis,
Tôi nghĩ rằng sự lựa chọn này không quá quan trọng ngay từ đầu. Mỗi cách tiếp cận đều có những thách thức và lợi thế và những điều bạn phải suy nghĩ. Nói chung, có lẽ bạn có thể thoát khỏi việc chỉ sử dụng các giá trị mặc định của PHP / bất kỳ khuôn khổ nào bạn sử dụng hoặc thậm chí chỉ là thứ dễ nhất để thực hiện. Nếu lựa chọn trở nên tồi tệ sau này, các phân tích hiệu suất của bạn sẽ cho bạn biết và bạn sẽ được trang bị dữ liệu bạn cần để đưa ra các lựa chọn phù hợp với tính chất cụ thể của lưu lượng truy cập bạn nhận được. Trước mắt, tất cả những gì bạn có thể có một cách hợp lý là đầu cơ chung.