数据库性能优化思路总结

  1. 性能需求——>数据库设计
    • 规范:
      • 无重复 或多值的列
      • 非关键字全部依赖PK
      • 非关键字不互相依赖
    • 合理冗余
      • 主从/读写分离,分散压力
      • 字段 ,减少连接查询
    • 主键、外键、索引设计
    • 字段设计(类型、长度)
    • 系统设计
  2. 编码——>SQL优化、事务&锁
    • JOIN使用
    • 少用*,多指定具体字段
  3. 数据库分割(中间件-mycat)
    • 分区:在多个硬盘上存储(IO速度、存储量)
    • 分表
      • 按时间分表,历史数据归档
      • 分表策略->Hash分表(myBatis)
    • 分库
      • 读写分离
      • 业务分库

踩坑记4-Java Web相关

Filter使用不当导致服务空返回

自定义的Filter验证通过后,没有调用职责链,导致链断开。

1
filterChain.doFilter(servletRequest, servletResponse);

自定义权限校验的filter链,结束后又重复调用主链,导致接口执行两遍,返回两次结果