这是我的面试问题之一。有一个巨大的数据库将持有数百万员工记录。我应该能够基于任何字段如姓,名,年龄,位置等进行高效查询,并且应该快速检索结果。你将如何去设计数据库。我根据索引等回答,但采访并不满意。有关这个设计如何实际完成的任何建议?高效检索的数据库设计
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