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!
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!
Bài liên quan
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)
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
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ả
- 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