Mn cho e hỏi với dữ liệu khoảng 700K record = 120MB , request ở localhost(nodejs) mất 17s là nhanh hay chậm ạ?
Cấu hình máy: RAM 8GB; SSD 500GB; core i7 5500U
Local host request tốn 17s /data 120MB là nhanh hay chậm?
Theo mình như vây là quá chậm, <5 giây thì mới chấp nhận duoc
với dữ liệu thống kê chỉ khoảng 23MB (khi lưu bằng định dạng csv), nhưng gửi nó qua frontend theo định dạng json nên data đã gấp lên 5 lần. Vậy có cách nào xử lí vấn đề này ko ạ?
vấn đề không thực tế thì cũng không nên nghĩ cách giải quyết làm gì, hoặc cũng có thể do mình kiến thực hạn hẹm chưa nghĩ ra case thực tế nào cần request 700k records
hơn nữa 17s này bị stuck chỗ nào, bạn không nói cũng chẳng ai biết mà nghĩ cách cho bạn
các thống kê về doanh thu lợi nhuận của sản phẩm, trường hợp là nếu chủ doanh nghiệp muốn xem report trên web. 700K record là data sản phẩm theo từng khung giờ (kinh doanh trong khoảng 4 năm). Tổ chức dữ liệu thống kê theo lược đồ star schema
trên màn hình không thể nào hiển thị được 700k records
nếu muốn vẽ biểu đồ hoặc xem thống kê thì lấy dữ liệu thống kê chứ sao lại lấy full dữ liệu?
mình có thể lọc theo năm, quý, tháng … nhưng flow hiện tại của mình là response data dạng json cho frontend hiển thị báo cáo, biểu đồ, sau đó nếu người dùng có nhu cầu tải xuống thì frontend sẽ convert json đó thành file excel cho người dùng lưu về máy. Có điều trước giờ mình chỉ test trên dữ liệu nhỏ nên ko thấy vấn đề gì. Nay mình gen data lớn lớn xíu để thử query thì thấy khá chậm …
Nếu bạn query để lấy thẳng ra 1 cục data như bình thường thì tầm vài chục ngàn records là đã bị chậm rồi.
Bạn google theo keyword pagination load database
Tất nhiên là còn tuỳ 1 records của bạn có nhiều dữ liệu đến mức nào, nhưng nếu trương hợp “ít”, thì tầm 3-4 triêu records load ra json tốn tầm 5s thôi, và cấu hình là cái shared hosting chứ không mạnh được như cái máy tính của bạn.
Vụ này, máy dù trâu cỡ nào, mà cách mình lấy dữ liệu không tốt, thì nó cũng chậm à.
database nằm đâu thế?
120mb -> app
120mb trên app -> client
tông cộng 240mb.
tốn time cho network nhiều hơn là query đấy.
flow không hợp lý thì sửa flow thôi, tại sao lại phải tìm cách sửa chỗ khác
như case này, theo tưởng tượng của mình thì chỉ là select ... from ....
giả sử như chỉ như vậy, không có where hay tính toán chỉ cả, select nguyên gốc data thì biết tối ưu kiểu gì bây giờ
bạn có thể thay đổi format data thành csv array khi gọi api, nhưng nó cũng là 25MB, con số này cho là rất lớn khi nói tới lập trình web
bạn muốn xem phim, và bạn tốn 1h để đến rạp cách nhà 60km để xem, bạn than thở là thời gian đi đến rạp sao lâu quá, có cách nào nhanh hơn hay không
trong khi đó cách nhà 100m cũng có cái rạp giống với cái rạp 60km kia
vậy bạn cần đổi sang xem phim ở rạp cách nhà 100m
hay vẫn tìm cách chạy 60km nhanh hơn (ví dụ nhưu độ xe để chạy nhanh hơn, mua máy bay…)