后端岗位面试题更新 2026-08-05

在项目里,关于数据库表的设计,你会从哪些维度考虑?请具体谈谈字段层面的设计要点。

后端开发性能优化系统设计技术选型

考察说明

考察候选人数据库表设计的实践经验,尤其是字段设计的规范性和合理性。

回答思路

  1. 【回答框架 1】数据库表设计需遵循三大范式,但实际中常做反范式化以提升查询性能。字段设计是核心,包括字段类型选择、长度、是否为空、默认值、索引设计等。
  2. 【回答框架 2】字段类型选择:数值型用INT/BIGINT,金额用DECIMAL避免浮点误差,字符串用VARCHAR并设合理长度,时间用DATETIME/TIMESTAMP。应避免使用TEXT等大字段,如必须使用可拆分或存外部存储。
  3. 【回答框架 3】字段属性设计:尽量设置NOT NULL并给默认值,便于索引和避免NULL值带来的额外开销;主键建议使用自增或雪花ID,避免业务字段做主键;创建时间、更新时间等审计字段应保留。
  4. 【回答框架 4】索引设计:根据查询频率和WHERE条件创建索引,注意区分普通索引、唯一索引、联合索引,联合索引需遵循最左前缀原则;避免索引失效,如对索引列使用函数或隐式类型转换。
  5. 【回答框架 5】实际项目中的表设计需结合业务场景,如用户表、订单表、商品表等,关系通过外键或逻辑关联,考虑数据量级和扩展性,必要时分库分表。
  6. 【关键点 1】字段类型选择需合理,金额用DECIMAL,时间用DATETIME/TIMESTAMP。
  7. 【关键点 2】尽量使用NOT NULL并设置默认值,减少NULL值带来的查询和存储开销。
  8. 【关键点 3】主键使用自增ID或雪花ID,避免使用业务字段。
  9. 【关键点 4】联合索引遵循最左前缀原则,根据查询频率设计索引。
  10. 【关键点 5】结合实际业务场景,考虑数据量、查询频率和扩展性。
  11. 【易错点 1】过度使用TEXT/BLOB等大字段会导致查询效率低,应避免或拆分。
  12. 【易错点 2】对索引列使用函数或隐式类型转换会导致索引失效,影响查询性能。
  13. 【易错点 3】过度反范式化可能导致数据不一致,需权衡性能和数据一致性。