2008-10-20 30 views
16

Tôi có biểu mẫu PHP (ứng dụng thế chấp) có khoảng 400 trường, lưu lượng truy cập trên trang web sẽ thấp.Kích thước phiên PHP lý tưởng?

Kích thước phiên lý tưởng cho 400 trường đi vào db của MySQL là gì?

Trong php.ini tôi phải làm gì?

Mọi thứ tôi nên đặt là thiếu?

Trả lời

13

Vâng, cá nhân tôi đã có những phiên rất lớn trước đây với rất ít vấn đề. Có lẽ kích thước lớn nhất mà tôi đã có trước đây là ~ 10MB. Nó không phải là tối ưu, nhưng tôi đã không có một vấn đề với các kịch bản chậm ngay cả với kích thước đó. Tôi sẽ không lo lắng về các phiên làm việc lớn, nhưng tôi sẽ cố gắng giữ nó trong tầm kiểm soát. Lý thuyết của tôi là, nếu giữ nó trong phiên làm cho nó nhanh hơn nhiều so với quering cơ sở dữ liệu mỗi lần (chẳng hạn như trong trường hợp tìm kiếm) thì tôi đi cho nó.

10

Nó không nên để lưu trữ rất nhiều dữ liệu trong một phiên. Như những người khác đã lưu ý, bạn không nên sao chép dữ liệu từ cơ sở dữ liệu. Ngay cả khi bạn thực sự cần một số loại cơ chế lưu vào bộ nhớ cache, bạn sẽ không lưu trữ dữ liệu trong một phiên. Vấn đề là PHP viết lại dữ liệu phiên cho mọi yêu cầu. Và như tất cả chúng ta biết viết vào đĩa là một hoạt động khá chậm .

Nếu bạn thực sự cần thực hiện, hãy tuần tự hóa mảng và lưu trữ nó trong một tệp riêng biệt .

Nếu bạn cần một loạt dữ liệu được tuần tự hóa chỉ 1 trong 10 trang, bạn chỉ cần giải nén nó một lần trong 10 trang. Phiên là tất nhiên đóng gói/giải nén cho mọi yêu cầu.

+4

[nguồn] (http://bytes.com/topic/php/answers/11014-questions-size-session#post46656) –

+0

Tôi không nghĩ đây là câu trả lời đúng. đọc/ghi dữ liệu vào cơ sở dữ liệu cũng đọc/ghi vào đĩa (ngoại trừ bộ nhớ đệm). Ngoài ra xin lưu ý hầu hết các trò chơi phải giữ dữ liệu của họ trong bộ nhớ để truy cập nhanh hơn trong trường hợp của PHP, đó là các biến phiên và cơ sở dữ liệu chỉ là lưu trữ nhàn rỗi thứ cấp. – AaA

2

Bạn cũng nên kiểm tra, post_max_size, max_input_vars (1000 mặc định, do đó bạn là ok)

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