Có cách nào để chỉ load dữ liệu 1 lần từ database và lần load sau không cần lấy dữ liệu nữa?

Mọi người cho em hỏi ạ! Em load dữ liệu từ database và đổ vào table php, nhưng mỗi lần load lại trang php đó thì là mỗi lần load dữ liệu từ database lên. Em muốn hỏi là có cách nào để em chỉ load 1 lần từ database và lần sau load lại trang sẽ k phải xuống database lấy dữ liệu lên ạ!

Mục đích của database là lưu trữ dữ liệu, nên việc mỗi khi load trang thì moi dữ liệu từ database lên rồi show ra là chuyện đương nhiên, tất nhiên sẽ có những trường hợp không như vậy, nhưng mình muốn giải thích đó là logic thông thường, ai cũng làm, dự án lớn nhỏ nào cũng làm.

Nếu làm theo logic của bạn, thì ví dụ user A load dữ liêu lên, đang xài; sau đó, user B load dữ liêu lên, update gì đó, save, rồi đi ngủ, thì A vẫn xài dữ liệu cũ vì đã load từ trước?!

6 Likes

nếu database ít cập nhật, dữ liệu ít biến động thì mình có 2 cách:

  • Thuê CDN Việt Nam.
  • Ở lần tải đầu tiên sẽ lưu toàn bộ data vào localStorage (5MB) sau đó không dùng database nữa.
6 Likes

Cậu có thể cache dữ liệu từ DB :smile: Redis, memcache, hay in-memory cache cậu tự implement/sử dụng 3rd party library cho từng instance… đều được.
Cơ mà tớ có mấy note cho cậu:

  • Cậu cần biết chính xác tần suất thay đổi dữ liệu ở DB để design cache phù hợp.
    Nếu không, hẳn nhiên cậu sẽ gặp vấn đề với stale cache.
  • Cậu luôn phải design invalidate cache flow. Nếu dữ liệu bị thay đổi, làm thế nào để cậu update lại cache?
    Tùy vào tần suất dữ liệu thay đổi, cậu sẽ có chiến lược invalidate cache khác nhau.

Hope it helps!

9 Likes

Uầy cảm ơn cậu rất nhiều nha ^^

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?