先自承是非本科的新人
最近看了版上的討論串,覺得自己的確實是
沒有CS基礎的API工程師,以前在學校修過資料結構
但是只有一些很粗糙的觀念
像是hash function因為返回的是index,所以在查找資料上非常快
目前還在惡補基礎的DS,至於OS和計算機組織就真的完全沒概念了
每次看到thread,大概就止步於看到那種for loop 交叉印出不同函數的例子
自己稍微爬文下來,不太懂如果要往高流量網站的設計邁進
該怎麼去活用那些知識
我爬文的結果有點像是
如果一張資料庫數量超過百萬
那這樣就要想辦法把資料分成不同的表格
然後這時hashmap 就可以幫你找到不同的表格這樣?
爬文大概看到以下方法
1.建立多個File server , 寫hash function 將上傳的圖片及影音平均分散到File server
上的Folder
2.Query優化、索引優化及將負載重的table做反正規化以減少資料庫負荷
建立Master /Slave 資料庫,分散Master主機loading,將讀寫資料庫動作分離,
Matster DB只負責被寫入及複製,Slave DB負責被讀取
3.可能還有一些cache之類的
比如說像是搶票網站好了
https://imgur.com/TON1Nid
看到有人說可以這樣解決
那像這樣的知識,是不是要想辦法進去大公司才有辦法學到
比較難在網路上,像是一般的前後端CRUD一樣容易獲得?
另外想問說,如果有一個API,他是getallemployee好了,打了url就要返回所有的員工
資料,這是如果是高併發高流量的網站設計
該怎麼活用資料結構,才能讓網站不要LAG
還是說這可能跟資料結構比較無關,我要去補充其他知識才會知道
如果可以的話,希望前輩們可以分享哪些關鍵字或是網站有sample code可以查詢