当前位置: 首页 > news >正文

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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

全局表

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

字段冗余

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

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

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

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

转载于:https://my.oschina.net/u/2277088/blog/814235

相关文章:

  • 记录:CentOS7.2配置LNMP环境记录
  • FLASH遮挡DIV浮动层解决方案兼容IE FF Chrome
  • Linux虚拟机中配置JDK环境变量
  • 常用的集合
  • 中文输入法与React文本输入框的问题与解决方案
  • 树莓派:光阴的故事
  • [转]MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN
  • 追踪记录每笔业务操作数据改变的利器——SQLCDC
  • JS读书心得:《JavaScript框架设计》——第12章 异步处理
  • 2017-1-6基础
  • nodejs npm常用命令
  • Bootstrap的竞争对手Zurb Foundation
  • centos7部署PaaS平台环境(mesos+marathon)
  • 2016 年度开源中国新增开源软件排行榜 TOP 100
  • c++ 深度优先算法输出树的访问顺序
  • ES6--对象的扩展
  • gulp 教程
  • HomeBrew常规使用教程
  • Java 内存分配及垃圾回收机制初探
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • tab.js分享及浏览器兼容性问题汇总
  • Vue官网教程学习过程中值得记录的一些事情
  • web标准化(下)
  • 聚簇索引和非聚簇索引
  • 类orAPI - 收藏集 - 掘金
  • 前端学习笔记之观察者模式
  • 如何使用 JavaScript 解析 URL
  • 数据可视化之 Sankey 桑基图的实现
  • 算法-插入排序
  • 王永庆:技术创新改变教育未来
  • 用jquery写贪吃蛇
  • #pragma预处理命令
  • #微信小程序:微信小程序常见的配置传值
  • $jQuery 重写Alert样式方法
  • (4)事件处理——(7)简单事件(Simple events)
  • (6)添加vue-cookie
  • (poj1.3.2)1791(构造法模拟)
  • (二)windows配置JDK环境
  • (十)T检验-第一部分
  • (十六)Flask之蓝图
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .bat批处理(一):@echo off
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net Stream篇(六)
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • :=
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [CISCN2019 华北赛区 Day1 Web2]ikun
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [ComfyUI进阶教程] animatediff视频提示词书写要点
  • [JAVA设计模式]第二部分:创建模式
  • [java刷算法]牛客—剑指offer链表有环的入口、反转链表、合并排序链表
  • [Json.net]快速入门