单机用join关联多表查询,但微服务却不能这样做了。
依赖字段较少做字段冗余在一张表,直接从一张表查,用空间来换取时间。
缺点:
依赖字段不能多
数据一致性问题,主表值改变了必须要同步到从表,否则会导致脏数据,在业务代码做同步,异常了还要做人工补偿。
依赖字段较多做表同步
依赖字段多且跨多张表,需要表级别的数据同步,用ETL工具来做到跨库的表同步。
缺点:
数据同步不建议实时性过高,否则数据库的性能会受到比较大的影响。
静态字段依赖用数据字典表
每个库建立数据字典表,避免跨库join,更新则采用一套脚本统一更新
代码缓存
减少服务间的RPC调用次数和数据库的查询压力。同时,注意设置好过期时间,把控好数据一致性和有效性
使用MyCat、ShardingJdbc等中间件解决