thắc mắc query vào database liên tục

  • Người tạo chủ đề Người tạo chủ đề Trevor_Schmeler
  • Ngày bắt đầu Ngày bắt đầu
Mình query vào database liên tục để lấy dữ liệu thì có vấn đề gì xảy ra nhỉ? Ví dụ mỗi 10s mình query một lần để lấy các bản ghi mới trong 10s đó.

Cái này mình nghĩ chỉ liên quan tới connection pool thôi, nhưng liêụ câu query có ảnh hưởng tới gì khác không thì không rõ. Rất mong bác nào biết chỉ mình.

Sent from Xiaomi Pro via nextVOZ
10s cũng bình thường (mấy cái application cũ mình support cũng dùng kiểu này, 5s 1 lần:rolleyes:. Đang code lại theo Event Driven nhưng chưa xong). Cần chú ý dùng fixed interval (nghĩa là sau khi nhận được kết quả rồi, thì 10s sau mới query tiếp). Chứ cứ 10s query 1 lần, mà query time 1 lần hơn 10s là thế nào cũng có vấn đề.
 
song song 2 DB Instance => Đây là pattern nên phải có. Kể cả không dùng cloud thì Production cũng vẫn nên có 2 database luôn luôn synchronously replication ( 1 Primary, 1 Standby). Lỡ cái Primary crashed thì cái Standby được promoted lên làm Primary ngay. Ví dụ Oracle có Oracle Data Guard sync giữa 2 database, database thì dùng RAC (Real Application Cluster). Primary database sẽ đưa ra connection READ_WRITE, còn Standby Database thì cung cấp connection READ_ONLY. Trong code thì setup 2 connection, tuỳ tác vụ CUD thì dùng READ_WRITE còn R thì dùng READ_ONLY
Nếu như thế này thì nghĩa là mình có truy vấn, thao tác với dữ liệu thì chỉ qua con primary chứ không phải tự chia ra tương tác với con ưu tiên ghi khi cần lưu và tương tác với con ưu tiên đọc khi đọc dữ liệu như e mô tả ở đoạn trên đúng không bác?
 
Em mới nghe ông sếp e nói về việc chạy song song 2 DB instance, 1 để đọc, 1 để ghi rồi đồng bộ và khi làm procedure thì khi nào cần ghi thì save sang con db ghi, khi cần đọc thì ghi vào con đọc, e nghe thấy ko hợp lý lắm, ko biết có bác nào có kinh nghiệm vụ chia db instance chỉ đọc chỉ ghi và khi làm procedure thì làm ntn để tăng hiệu suất ko ạ?
để khỏi quan tâm đọc ghi bạn có thể dùng Proxy Sql. Nó bắt theo pattern, Update/Insert/ Delete nó tự điều hướng sang con ghi, Select nó tự điều hướng sang con đọc. Chỉ cần dùng 1 ip, 1 port đỡ phải handle ở logic nếu framework bạn đang dùng không có sẵn chia đọc/ ghi.
 
Nếu như thế này thì nghĩa là mình có truy vấn, thao tác với dữ liệu thì chỉ qua con primary chứ không phải tự chia ra tương tác với con ưu tiên ghi khi cần lưu và tương tác với con ưu tiên đọc khi đọc dữ liệu như e mô tả ở đoạn trên đúng không bác?
Bác ấy có nói là CUD thì đưa vào cho primary, còn R thì do standby xử lí đó bạn.
 
Mình query vào database liên tục để lấy dữ liệu thì có vấn đề gì xảy ra nhỉ? Ví dụ mỗi 10s mình query một lần để lấy các bản ghi mới trong 10s đó.

Cái này mình nghĩ chỉ liên quan tới connection pool thôi, nhưng liêụ câu query có ảnh hưởng tới gì khác không thì không rõ. Rất mong bác nào biết chỉ mình.

Sent from Xiaomi Pro via nextVOZ
10s thì thấm gì fen , tẹt đi
Nếu chỉ để get query (join group) để lấy data ra
1. nếu xài cloud như bọn azure,aws thì cứ nếu có tiền thì nhấn vao nút "replica" sắm thêm 1 con replica (read only) , tha hồ mà chọc select join group by .

2.Nếu nghèo thì tạo shadow tables, bản nào join group nhìu thì cứ tạo batch job để tạo các table1_shadow , table2_shadow . Sau đó query trên các shadow table đó , đỡ lo deadlock. tiền storage là ghẻ nhất rồi , clone vô tẹt đi
 
để khỏi quan tâm đọc ghi bạn có thể dùng Proxy Sql. Nó bắt theo pattern, Update/Insert/ Delete nó tự điều hướng sang con ghi, Select nó tự điều hướng sang con đọc. Chỉ cần dùng 1 ip, 1 port đỡ phải handle ở logic nếu framework bạn đang dùng không có sẵn chia đọc/ ghi.
thằng này cho MySQL, còn Oracle có thằng nào tương tự ko bác
 
Mình đang có cái yêu cầu sync up giữa On-premises vs cloud. Mà k/h thì có yêu cầu dữ liệu phải sync sớm lên cloud. Mình cũng hơi ngần ngại dùng interval nhưng ko có cách nào khác. Tìm tài liệu của MS thì không thấy. Đang ko rõ thời gian ngắn quá thì có ảnh hưởng gì tới database server không.

Sent from Xiaomi Pro via nextVOZ
Cái j mà chả ảnh hưởng, query nhiều tốn cpu, tốn mem
 

Thống kê chủ đề

Ngày tạo
Trevor_Schmeler,
Người trả lời cuối
FullStackFlutterGolang,
Trả lời
68
Lượt xem
10.875
Quay lại
Lên đầu trang