thảo luận Thuật toán tìm kiếm tối ưu cho mảng dữ liệu lớn - JS

Nói thật tôi thấy các anh cứ thích đao to búa lớn, giải thuật các kiểu trong khi design thì như shit, lúc đó thuật trời cũng ko cứu được đấy.

À còn vụ anh bảo tôi bớt làm CRUD là a chụp mũ nhé. Nói luôn, tôi làm về Data Analysis và Machine Learning chứ éo phải CRUD, và tôi biết trình của tôi cũng chẳng pro gì nên ko dám gáy về giải thuật như anh. Chém gió với các a bên kia là do thấy mấy a cuồng FP quá thôi.

Lượn :go:
tôi hiểu anh là kiểu dev gì.
làm backend phải dùng c#
làm frontend phải cài jquery
architect > algorithm
làm TA nên syntax, language không quan trọng.
 
Chào các bác, hiện tại em đang tìm kiếm theo tên của từng địa chỉ để lấy ra lat long, nhưng vấn đề là mảng dữ liệu em khá lớn ( ~ 3m dòng :beat_shot: ). Có giải thuật nào tối ưu để xử lí mảng này không các bác ? :adore:

View attachment 234167

  • Tôi nghĩ thớt chắc có lý do riêng ko thể đưa đám database này lên các database engine có hỗ trợ FTS rồi. Ví dụ ko có server để làm công việc này phía backend,....etc => Ông thớt xác nhận giùm.
 
Last edited:
1) Chủ thớt insert vô DB rồi query ra.
2) Chủ thớt slice cái Array call API trước (country = "vn"). Lúc này chủ thớt loop trên List các tỉnh thành trước đó của chủ thớt so với Array API để lấy thông tin thì sẽ giảm đi số record scan đáng kể.
 
Vấn đề không phải là làm sao tìm kiếm trên ~3m dòng. Vấn đề là tại sao lại để mình rơi vào tình huống có cái mảng ~3m dòng. :feel_good:

via theNEXTvoz for iPhone
à bởi vì mình không dùng google geolocation để từ tên địa điểm lấy ra toạ độ :beat_shot: thường mình không làm như này nhưng muốn research xem có giải thuật được dữ liệu lớn không ấy mà
 
Cho mình hỏi là contex ở đây là gì nhỉ, bạn dùng read 1 file text json trong đó có 3 triệu record, hay là bạn request sang 1 web api nào đó, và api đó trả về 3 triệu record, nội dung có thể thay đổi trong các lần gọi khác nhau, rồi bạn muốn filter bằng "name" à. Ý câu hỏi này của mình là bạn cái 3 triệu row của bạn là data bạn chủ động (trường hợp 1) hay bị động (trường hợp 2)

Nếu mà trường hợp 1 thì có lẽ là thay vì để trong file text, có lẽ bạn nên lưu trong sql database hoặc gì đó, có index để seek, index-key look up đêt giảm io, hoặc tự động parallel nếu phải scan (ví dụ khi search bằng pattern bất thường), 1 số sẽ hỗ trợ cả full text search (sql server)

Còn trường hợp 2 thì trước khi xem thuật toán xử lý, bạn kiểm tra xem nó có chậm ở bước get data hoặc de serialize k (3 triệu row với data thế kia có khi cũng phải mấy chục megabyte, down qua network có khi cũng phải chục giây, chưa kể cost deserialize) . Còn nếu mà chậm thực sự là do arr thì mình nghĩ sẽ chẳng có cách nào khác ngoại trừ duyệt từ đầu mảng đến cuối mảng đâu, để tăng tốc cái này nếu là đám như c# thì mình sẽ nghĩ đến thư viện parallel for each, nhưng k rõ javascript web worker thì thế nào...
thank bạn mình đang có file json thoy :big_smile:
 
  • Tôi nghĩ thớt chắc có lý do riêng ko thể đưa đám database này lên các database engine có hỗ trợ FTS rồi. Ví dụ ko có server để làm công việc này phía backend,....etc => Ông thớt xác nhận giùm.
à do là openweathermap cung cấp sẵn file đó nên em muốn tìm xem cách nào xử lí ở client không :go:
 
Đơ máy chứ chả đùa :rolleyes:
chưa đơ nha bác
brick.png
 
Tìm kiếm là tìm kiếm cái gì? Cụ thể thì mới tìm cách đc (tìm chính xác, tìm chuỗi con, wildcart hay fts luôn) . Còn ko có yêu cầu cụ thể thì cứ nạp vào db hoặc search engine mà tìm.
 
Back
Top