数据表设计

  • 三范式就是设计数据库的规则
  • 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据 库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关 系型数据库,必须满足一定的范式

1.第一范式 1NF

  • 原子性, 做到列不可拆分

    • 数据库表里面字段都是单一属性的,不可再分
    • 如果数据表中每个字段都是不可再分的最小数据单元,则满足第一范式

2.第二范式 2NF

  • 一张表只能描述一件事

    • 在第一范式的基础上更进一步,目标是确保表中的每列都和主键相关

3.第三范式 3NF

  • 消除传递依赖

    • 表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放

查询语句规范

1.SQL性能差的原因

  • 等待时间长

    • 锁表导致查询一直处于等待状态
  • 执行时间长

    • 查询语句写的烂
    • 索引失效
    • 关联查询太多join
    • 服务器调优及各个参数的设置

2.SQL优化原则

  • 只返回需要的结果

    • 一定要为查询语句指定 WHERE 条件,过滤掉不需要的数据行
    • 避免使用 select * from , 因为它表示查询表中的所有字段
  • 确保查询使用了正确的索引

    • 经常出现在 WHERE 条件中的字段建立索引,可以避免全表扫描
    • 将 ORDER BY 排序的字段加入到索引中,可以避免额外的排序操作;
    • 多表连接查询的关联字段建立索引,可以提高连接查询的性能;
    • 将 GROUP BY 分组操作字段加入到索引中,可以利用索引完成分组
  • 避免让索引失效

    • 在 WHERE 子句中对索引字段进行表达式运算或者使用函数都会导致索引失效 使用 LIKE 匹配时,如果通配符出现在左侧无法使用索引
    • 如果 WHERE 条件中的字段上创建了索引,尽量设置为 NOT NULL

更新时间:{docsify-updated}