Avatar
1
Hồng Quân Nguyễn Beginner
Cách truy vấn và xử lý dữ liệu lớn trong Oracle(table khoảng 50M record)
chào mọi người.

Em có một module xử lý bất đồng bộ nhiều tập user(khoảng 2-3M user mỗi tập), mỗi tập user cần truy vấn(với các điều kiện khác nhau tùy vào tập user đó) trong bảng user(có khoảng 50M record). Nếu Mỗi lần xử lý một tập user bất kỳ thì em sẽ truy vấn cả tập user lên chương trình nhưng khi đó việc truy vấn rất chậm và tràn bộ nhớ chương trình nên em có định sẽ cache các id của các tập user đó vào redis theo từng batch và xử lý từng batch user id, để lấy được user cần xử lý thì em sẽ truy vấn theo id(vì id có index nên em nghĩ sẽ nhanh hơn) và không tràn bộ nhớ. Mn thấy cách này có ổn không và có cách nào nhanh hơn không ạ?

  • Answer
java redis oracle
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
  1. Anh không hiểu tại sao em lại cần phải lấy tất cả user lên để xử lý mà không lấy từ từ khoảng 100 user 1 lần để xử lý nhỉ?
  2. Anh thấy việc em lưu dữ liệu vào redis (lưu user_id) thế sau đó lại lấy danh sách user id đó để truy vấn cơ sở dữ liệu thì nó có khác gì việc em gọi 1 câu truy vấn để lấy ra danh sách user thoả mãn điều kiện đâu nhỉ?

Vậy nên anh nghĩ là việc sinh ra redis là không cần thiết, và cách làm anh nghĩ là cứ lấy khoảng vài trăm user ra để xử lý 1 lần em ạ, vừa an toàn, đơn giản mà lại dễ maintain và tiết kiệm hạ tầng hơn

  • 0
  • Reply