10/10/2018, 13:19

[PHP] Nên lưu dữ liệu ra SESSION hay truy xuất lại vào CSDL

Chào các bác!
Em đang làm 1 project về php, project làm việc với dữ liệu lớn và người dùng lớn.
Em dự định sẽ lưu 1 phần dữ liệu cần xử lý (VD: thông tin user) vào biến $_SESSION và sau này khi sử dụng 1 module thì sử dụng lại biến SESSION đó chứ ko truy xuất lại vào CSDL-> Mục đích hạn chế câu lệnh SQL trong 1 module. Tất nhiên các giá trị lưu chỉ ở dạng (number hoặc varchar chứ ko phải dạng TEXT)
Em đc biết là session nó lưu trên server, cụ thể là RAM. Vậy với dữ liệu lớn, số lượng người sử dụng trong cùng 1 thời điểm lớn thì lưu ra SESSION liệu có tốt hơn hơn là truy xuất lại vào bảng CSDL.
Cám ơn các bác nhiều!
zmt264 viết 15:19 ngày 10/10/2018
Được gửi bởi manlivo
Em đc biết là session nó lưu trên server, cụ thể là RAM.
Được biết từ nguồn nào thế? có link không (không nói là bạn sai, mà cần dẫn chứng thôi)? session đúng là lưu trên server nhưng RAM không phải là nơi duy nhất có thể lưu và cấu hình mặc định của 1 số thứ như ở XAMPP là lưu vào ổ cứng, thành file (có thể xem được bằng mắt thường) chứ không phải RAM.

Bạn muốn giảm tải thì cái gì xử lý được trên client bạn dồn hết cho client (JS + cookie)
manlivo viết 15:30 ngày 10/10/2018
Vâng cám ơn anh zmt. Ngoài giảm tải cho server, em còn muốn nó đc tối ưu về mặt tốc độ.
Mục đích chính của em là giảm số truy vấn tới CSDL ở mức thấp nhất có thể. Tức là lấy dữ liệu ra và tìm 1 nơi lưu trữ để đảm bảo việc sử dụng lại dữ liệu 1 cách hiệu quả nhất.
Với 1 hệ thống lớn thì em đang phân vân việc lưu dữ liệu cần thiết ra biến session, nhưng chưa biết có quá nhiều session nó ảnh hưởng đến hệ thống của mình như thế nào? Anh có thể góp ý cho em về vấn đề này đc ko ạ?
http://stackoverflow.com/questions/2...p-session-size
p/s: Còn đúng là nó ko hẳn lưu ra RAM mà có thể là file hoặc database
tuine2334 viết 15:21 ngày 10/10/2018
Mình có ý kiến thế này bạn tham khảo nhe:
1. Cache php.
2. hi sinh bảng dữ liệu trong database
3. tối ưu câu lệnh truy vấn
4. load không đồng bộ
Yếu tố quan trọng để website có tốc độ load nhanh là giao diện +đường truyền + với mấy cái gợi ý ở trên.
Đối với csdl lớn chưa chất là lưu trên session sẽ nhanh hơn database.
Tại sao thì tự tìm hiểu sẽ có kết quả
trannamcn viết 15:34 ngày 10/10/2018
- Nếu bạn nhắc tới dữ liệu lớn và người dùng lớn thì tốt nhất là hãy sài NoSQL (MongoDB) và làm quen dần với cách thiết kế chấp nhận dư thừa dữ liệu để đạt hiệu suất cao nhất !!
- Session sử dụng Cookies để xác định phiên làm việc, theo như mình biết thì nếu như không có cách config nào thì mặc định nó lưu dưới HDD. Còn nếu bạn muốn lưu trên RAM thì sử dụng memcached rồi kết hợp với cookies và dựa trên tư tưởng như session.
- Giảm thiểu Query vào Database thì bạn có thể Caching từng kết quả của query trong vòng 1 khoảng thời gian cho phép để giải quyết vấn đề đó !
- Nếu vẫn dùng SQL thì nên viết truy vấn ngon ngon 1 chút luôn tận dụng index trong các truy vấn ( Kiểu key => value) trong NoSQL
manlivo viết 15:33 ngày 10/10/2018
Được gửi bởi tuine2334
Mình có ý kiến thế này bạn tham khảo nhe:
1. Cache php.
2. hi sinh bảng dữ liệu trong database
3. tối ưu câu lệnh truy vấn
4. load không đồng bộ
Yếu tố quan trọng để website có tốc độ load nhanh là giao diện +đường truyền + với mấy cái gợi ý ở trên.
Đối với csdl lớn chưa chất là lưu trên session sẽ nhanh hơn database.
Tại sao thì tự tìm hiểu sẽ có kết quả
Cám ơn bạn! Mình thấy các yếu tố bạn nêu ra thì mình đều đã nghĩ tới và đang thực hiện, còn hy sinh bảng CSDL trong database thì mình chưa hiểu lắm! Bạn có thể giải thích rõ được ko?

Được gửi bởi trannamcn
- Nếu bạn nhắc tới dữ liệu lớn và người dùng lớn thì tốt nhất là hãy sài NoSQL (MongoDB) và làm quen dần với cách thiết kế chấp nhận dư thừa dữ liệu để đạt hiệu suất cao nhất !!
Nói là lớn nhưng mình chưa nghĩ đến mức phải sử dụng NoSQL bạn ạ! Với lại nó kế thừa hệ thống cũ, nên mình ko muốn làm nó quá phức tạp lên.
zmt264 viết 15:30 ngày 10/10/2018
Được gửi bởi trannamcn
- Session sử dụng Cookies để xác định phiên làm việc
chuẩn rồi, cái này gọi là Cookie-based Session, đa số Session thuộc dạng này, khi Cookies không dùng được có thể nó sẽ chuyển qua các dụng Session khác như URL-based Session...
diepnghitinh viết 15:31 ngày 10/10/2018
tôi thì dùng cache file và cache query để tăng lượng truy cập lên gấp 5 lần
Bài liên quan
0