這是我的面試問題之一。有一個巨大的數據庫將持有數百萬員工記錄。我應該能夠基於任何字段如姓,名,年齡,位置等進行高效查詢,並且應該快速檢索結果。你將如何去設計數據庫。我根據索引等回答,但採訪並不滿意。有關這個設計如何實際完成的任何建議?高效檢索的數據庫設計
0
A
回答
0
我不確定問題的背景,但據我瞭解,您被問到有關數據建模的問題,而不是關於現有數據庫/查詢的「純」優化。
我會採用以下方法。一個企業可以擁有針對輸入新數據而優化的「操作數據庫」或OLTP(最小化的索引集,高度規範化)以及從規範化角度看具有大量冗餘的「決策支持數據庫」(數據倉庫,OLAP系統)但是可以讓你快速搜索不同的標準。從OLTP系統建模數據倉庫是一個相當重要的話題,需要深刻理解業務需求。
要回答關於通過員工搜索的問題,我建議構建一個簡單的星型模式(其中每個搜索條件由維度表格表示)。然後可以在模型的頂部添加適當的技術,如索引,分區,物化視圖。
0
這些要求建議考慮一個鍵值存儲給我,而不是傳統的SQL數據庫。
鍵值存儲將允許您執行相對非結構化的查詢(即,您不需要提前定義架構)並且設計用於非常快速的讀取。
實例:
Redis的
卡桑德拉
長椅
的MongoDB
0
也許面試官想要一個關鍵詞:normalisation
世界上所有的指數都不會幫助規範化的數據庫 - 可能是問題中的「員工記錄」包含名稱,地址...,每個記錄和記錄都是項目,休假日,病假等。
我相信,這條線索是在'數以百萬計''員工'記錄中。即使是最大的政府部門也沒有'數百萬'的員工,所以數據庫沒有正常化。
相關問題
- 1. SQL數據庫的高效設計
- 2. 數據庫的設計是否高效?
- 3. 高效的MongoDB數據庫設計
- 4. 高效的MySQL數據庫設計
- 5. 數據庫設計 - 高效的文本搜索
- 6. 從PostgreSQL數據庫高效地檢索大型數據對象
- 7. 高效的數據庫搜索LIKE'%something%'
- 8. 的Neo4j圖形數據庫的設計和高效的查詢
- 9. 角度:如何檢索數據高效
- 10. CakePHP的 - 數據檢索 - 模特協會與數據庫設計
- 11. 這是一個高效的MySQL數據庫設計嗎?
- 12. 規範化和高效的SQL數據庫設計
- 13. 最高效的訂購後數據庫設計
- 14. crawler4J高效設計獲取數據
- 15. 用於設計高速緩存的數據結構,具有高效的插入,刪除和最高值檢索
- 16. 檢索'最受歡迎'表格行的高效db設計
- 17. 數據庫設計的效率
- 18. 從JVM高效存儲和檢索數據庫中的二維數據
- 19. 高可用性和數據庫設計
- 20. 的數據來檢查數據表高效的方式設置
- 21. web-cms數據庫的設計索引
- 22. 用於高效搜索表格數據的數據庫技術?
- 23. 數據庫設計 - 存儲等效
- 24. Django,高效地檢索多個字段過濾器的計數
- 25. 數據庫如何高效?
- 26. 高效數據庫查找
- 27. 設計更高效的樹
- 28. 搜索和數據庫設計
- 29. 數據庫設計和彈性搜索
- 30. 數據庫設計:索引Varchar