简单提升数据库查询效率的办法

全局表数据库

所谓全局表,就是有可能系统中全部模块均可能会依赖到的一些表。比较相似咱们理解的“数据字典”。为了不跨库join查询,咱们能够将这类表在其余每一个数据库中均保存一份。同时,这类数据一般也不多发生修改(甚至几乎不会),因此也不用太担忧“一致性”问题。性能

字段冗余设计

这是一种典型的反范式设计,在互联网行业中比较常见,一般是为了性能来避免join查询。同步

举个电商业务中很简单的场景:电商

“订单表”中保存“卖家Id”的同时,将卖家的“Name”字段也冗余,这样查询订单详情的时候就不须要再去查询“卖家用户表”。互联网

字段冗余能带来便利,是一种“空间换时间”的体现。但其适用场景也比较有限,比较适合依赖字段较少的状况。最复杂的仍是数据一致性问题,这点很难保证,能够借助数据库中的触发器或者在业务代码层面去保证。固然,也须要结合实际业务场景来看一致性的要求。就像上面例子,若是卖家修改了Name以后,是否须要在订单信息中同步更新呢?数据

相关文章
相关标签/搜索