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

news/2024/7/8 2:01:14

为什么80%的码农都做不了架构师?>>>   hot3.png

全局表

所谓全局表,就是有可能系统中所有模块都可能会依赖到的一些表。比较类似我们理解的“数据字典”。为了避免跨库join查询,我们可以将这类表在其他每个数据库中均保存一份。同时,这类数据通常也很少发生修改(甚至几乎不会),所以也不用太担心“一致性”问题。

字段冗余

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

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

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

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

转载于:https://my.oschina.net/ALEEEx/blog/783675


http://www.niftyadmin.cn/n/3094093.html

相关文章

(转载)cocos2d-X学习之坐标系统

转载之:http://www.cnblogs.com/lhming/archive/2012/07/01/2572272.html 在cocos2d-x中有两种坐标系,分别是屏幕坐标系和open gl坐标系。 屏幕坐标系:x轴朝右,y轴朝下。默认原点在左上角,如下图: 这个是一…

微信小程序真机预览体验测试教程

前言 从小程序内测开始,有很多优秀的创意、想法已经在内测阶段开发完成。目前小程序开始公测,开放了小程序的申请和注册,但是还无法正式发布。那么我们在未正式发布之前,能不能在真机上体验一回微信小程序呢。答案是肯定的。如有微…

转MFC 消息机制

本文转载之博客园 梦想SKY 文章,在此,感谢原作者的书写,原文地址:http://www.cnblogs.com/dsky/archive/2012/05/28/2520853.html ---- MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消…

C++ 把struct 当作类试用

在看某个开源项目中,有这样一段代码,真心不知道这样是好是坏好处具体在哪里呢?希望各位看官,留下自己的看法吧!~ struct TDllProxy {TDllProxy(LPCSTR szDllPath) : m_hModule(NULL){m_hModule LoadLibraryA(szDllPa…

haproxy代理设置及配置文件详解

haproxy代理配置:结果图:haproxy代理配置2方式:结果配置:Haproxy的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global、Default、frontened、backend、listen配置文件格式&#x…

web前端(二)

表格标签&#xff1a; <table> </table>按照这个顺序&#xff1a;一个可选的 <caption> 元素零个或多个的 <colgroup> 元素一个可选的 <thead> 元素下列任意一个&#xff1a;零个或多个 <tbody>零个或多个 <tr>一个可选的 <t…

git零散知识

集中式与分布式的差别&#xff1a; 集中式的服务器挂了所有人都挂了&#xff0c;因为完整仓库只存在服务器上&#xff0c;分布式如果github挂了你可以重新建一个服务器&#xff0c;然后把任何一个人的仓库clone过去 一句话总结&#xff1a;分布式版本控制的每个节点都是完整仓库…