Tôi nhớ là thầy ở trên sóc sơn hay ở đâu mà, thi tỉnh chỉ làm phần mềm chat liệu có đủ nặng để giám khảo chấm không
Thì ngược lại giám khảo cũng có thể nói là phương án dùng db sẽ không khả dụng khi số lượng user lớn hơn mức chịu đựng của db mà
làm gì có cái app nào mà số lượng user lớn hơn mức db có thể chịu đựng đc fen, cái đó do fen phân tách db với khả năng chịu tải của server thôi. Có tiền đập vô là chịu đc hết chớ. Ý mình là theo hướng đó thì tiền vẫn giải quyết được, chứ đi theo hướng kia là coi như cụt luôn
Thực thế thì hướng lưu cache trên application là hợp lý và nhiều thằng làm để giảm tải cũng như chi phí server cho db. Làm đúng thì database chỉ là nơi lưu trữ cuối cùng, chỉ ghi, không đọc, việc đọc dữ liệu ra là nhiệm vụ của con khác tuỳ thiết kế của mỗi hệ thống, như chat thì thường sẽ là redis cache pub sub vừa đẩy data mới cho client, vừa persist xuống db để lưu trữ, thậm chí chẳng cần lưu trữ cũng được nếu như data xác định là phù du. Làm đúng thì chi phí thấp có thể đáp ứng nhiều user, còn ngay từ đầu thiết kế sai thì tiền bao nhiêu cho đủ để mà horizontal/vertical scaling
Thiết kế sai thì có đập tiền vào cũng chịu thôi bạn ơi, database relation là để write & process, đây lại dùng như là cache để realtime read thì mới có 2 client với vài nghìn record như trong topic đã chậm rồi
Tôi ở Hoà Bình, cuộc thi này trước giờ chưa có học sinh nào làm đc phần mềm cả nên làm. lần này khả năng ăn chắc giải 1 rồi
Cũng còn tuỳ server và phụ thuộc vào ram + IO, dùng SSD ngon thì sure kèo cân được vài trăm user cùng lúc. Mà cách query cũng quan trọng, phần cứng đáp ứng tốt mà query viết cồng kềnh, xử lý không nhanh để deadlock hoặc treo process thì cũng chết. Còn case của chủ thớt, chỉ 2 user thì dù nosql hay relational db đều chạy mướt như nhau, chấp vài chục đến vài trăm nghìn record luôn. Còn bị chậm thì chỉ có thể do code banana
tui làm app chat nè csdl mongodb render lịch sử chat thì chỉ cần render 20 tin nhắn gần nhất thôi, bắt sự kiện scrollToTop của khung chat để query thêm 20 tin nhắn nữa ...
Tiện topic cho hỏi ké luôn, có fen nào biết cách cài extension lên chrome ipad không, hoặc ngoài ra có cách nào inject javascript vào web khác không (Riêng trên máy mình thôi chứ k phải hack hiếc gì đâu). Tự làm cái extension đọc đoạn văn tiếng anh để học mà nó chỉ cho cài trên máy tính thôi
Chơi tamper monkey nhé bác. Thực ra mình cũng chưa chạy thử trên mobile device bao giờ. Nhưng khả năng của nó là có làm được.
Dùng framework sẵn có cho nhanh. Ví dụ matrix, tại vì làm 1 cái app chat còn rất nhiều thứ quan trọng khác nữa, crypto mã hoá tin nhắn, rồi ảnh, video, voice file các kiểu, up lên rồi lưu vào server hay up lên lưu dạng blob vào db làm chuẩn thì có mà mút mùa. Còn làm lên chạy dc là ok để thuyết trình vài phút thì in memory là đủ rồi, chả cần db làm gì.
đọc topic bổ ích ghê, dù chẳng còn động đến code nhưng nhớ lại cái thời đi học SELECT * FROM WHERE vẫn hoài niệm ghê
Chính ra nhiều vấn đề nhỏ và dễ cỡ này lại giúp mọi người có nhiều ý kiến hay. Đúng là học thầy ko tày học bạn :) Lúc đầu nhận trách nhiệm tôi cũ nghĩ, có gì khó lắm mò lên 4rum hỏi kiểu gì cũng có ông rành, mà đúng thật