数据库性能:按列过滤与单独表过滤

2024-04-09

我想知道对于以下情况最好的方法是什么:

我在数据库中有一个订单表,显然包含所有订单。但这些实际上是所有订单,因此包括刚刚标记为“完成”的完整/完成的订单。我想从所有未结订单中计算一些内容(例如未结金额、未结项目等)。什么会更好的性能明智:

保留 1 个包含所有订单(包括完整/存档订单)的订单表,并通过过滤“完整”标志进行计算?

或者我应该创建另一个表,例如“Orders_Archive”,以便订单表仅包含我用于计算的未结订单?

这些方法是否有任何(明显的)性能差异?

(顺便说一句,我使用的是 PostgreSQL 数据库。)


这是数据库设计中的一个常见问题:是否分离或“归档”不再“活动”的记录的问题。

最常见的方法是:

  • 所有内容都在一张表中,根据需要将订单标记为“完整”。优点:最简单的解决方案(代码和结构方面),良好的灵活性(例如,易于“复活”订单)。缺点:表可能变得非常大,这对于查询和例如查询来说都是一个问题。备份。
  • 将旧内容归档到单独的表中。解决了第一种方法的问题,但代价是更加复杂。
  • 使用具有基于值的分区的表。这意味着从逻辑上(对于应用程序而言)所有内容都在一张表中,但在幕后 DBMS 根据某些列上的值将内容放入单独的区域中。您可能会使用“完整”列或“订单完成日期”进行分区。

最后一种方法结合了前两种方法的优点,但需要 DBMS 的支持,并且设置起来更复杂。

Note:

仅存储“归档”数据的表通常称为“归档表”。一些 DBMS 甚至为这些表提供特殊的存储引擎(例如 MySQL),这些引擎经过优化以允许快速检索和良好的存储效率,但代价是更改/插入缓慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库性能:按列过滤与单独表过滤 的相关文章

  • postgresql-按每个元素中的单词对数组进行排序

    有字符串数组 ARRAY CAT CAT DOG CAT DOG Cat 现在我想根据每个元素中的单词数对该数组进行排序 我已经尝试过 但没有取得任何成功 我想要这个输出 ARRAY CAT DOG CAT DOG CAT Cat 我怎样才
  • 如何记录数据库代码以查看数据库对象之间的依赖关系? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想为我的宠物项目编写文档 我的 PostgreSQL 数据库中有 30 个表 近 50 个视图和大约 30 个函数 存储过程 我想看
  • 使用 ActiveAndroid 库存储 HashMap

    我有一堂课 Table name Control public class Control extends Model Column private String name Column private Map
  • 将数据从一个线程传递到另一个线程的最快可能方法

    我正在使用增强spsc queue将我的东西从一个线程移动到另一个线程 这是我的软件中的关键位置之一 所以我想尽快完成它 我写了这个测试程序 include
  • Postgres 平均值计算忽略 null

    这是我的 postgres 表 name revenue John 100 Will 100 Tom 100 Susan 100 Ben 5 rows 在这里 当我计算平均收入时 它返回 100 这显然不是这种情况 而总和 计数 即 400
  • 随机数据库与 AWS 中的 Django 和 Postgresql 断开连接

    我试图找出 Django 和数据库连接错误问题的根源 此时 我正在调试提示 因为我认为症状太不具体 一些背景 我一直在使用这个堆栈 在 AWS 中部署了很多年 没有出现任何问题 Ubuntu 在本例中为 20 04 LTS Nginx Uw
  • postgresql 中的锁定表

    我有一个名为 games 其中包含一个名为 title 该列是唯一的 数据库中使用PostgreSQL 我有一个用户输入表单 允许他插入新的 game in games 桌子 插入新游戏的功能会检查之前输入的游戏是否存在 game 与相同的
  • PhoneGap 1.4 封装 Sencha Touch 2.X - 性能怎么样?

    我正在构建一个多平台平板电脑应用程序 仅使用其 Webview 使用 Phonegap 1 4 对其进行包装 然后使用 Sencha Touch 2 框架发挥我的魔力 我所说的多平台是指 iOS 5 X 和 Android 3 0 目前 到
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • 在 SQL Server 2005 IMAGE 列中存储 20 Meg 文件的最有效方法

    我们将文档存储在 SQL Server 2005 数据库表中 列格式为 Image 每次我尝试存储大于 1 Meg 的 PDF 文件时 它都会以某种方式损坏 NET 中是否有任何特别有效的方法来序列化大文件 10megs 并将其存储到数据库
  • 在所有浏览器中启用我的网站的平滑滚动

    我正在开发一个视差滚动网站Stellar http markdalgleish com projects stellar js and Skrollr https github com Prinzhorn skrollr图书馆 该网站在 F
  • 在单个 mongodb 查询中查找并计数

    我的文档看起来像这样 id ObjectId 572c4bffd073dd581edae045 name What s New in PHP 7 description PHP 7 is the first new major versio
  • Postgresql 串行错误自动增量

    我在 postgresql 上遇到问题 我认为 postgresql 中有一个错误 我错误地实现了一些东西 有一个表包括colmn1 primary key colmn2 unique colmn3 插入一行后 如果我尝试使用现有的另一次插
  • 降低Python中的浮点精度以提高性能[重复]

    这个问题在这里已经有答案了 我正在树莓派上使用 python 我使用互补滤波器从陀螺仪中获得更好的值 但它消耗了太多树莓派的电量 大约为 70 我认为可以通过降低浮点精度来提高性能 现在 结果大约有 12 位小数 这超出了我的需要 有什么办
  • linq2sql,存储库模式 - 如何从两个或多个表查询数据?

    我使用存储库模式 和 linq2sql 作为数据访问 并拥有例如 ProductsRep 和 CustomersRep 在非常简单的场景中 数据库有两个表 产品 产品 ID 客户 ID 产品名称 日期 和顾客 客户 ID 名字 姓氏 每个存
  • 如何将彼此“接近”的纬度/经度点分组?

    我有一个用户提交的纬度 经度点的数据库 并且正在尝试将 接近 点分组在一起 接近 是相对的 但目前看来约为 500 英尺 起初 我似乎只能按前 3 个小数位具有相同纬度 经度的行进行分组 大约是一个 300x300 的盒子 了解当您远离赤道
  • SQL Server 批量插入 - “批量加载数据转换错误”

    bulk insert dbo A FROM d AData csv WITH FIELDTERMINATOR ROWTERMINATOR n 将批量数据插入数据库时 在检查可疑数据后 我遇到了无法解释的错误 消息 4867 16 级 状态
  • Android 性能:SharedPreferences 的成本

    当我的应用程序启动时 我使用分片首选项中的值填充容器类 这个想法是处理 SharedPreferences 和 PreferenceManager 一次 因为我猜它们很重 这是一个示例 SharedPreferences prefs Pre
  • 唯一约束与唯一索引?

    之间有区别吗 CREATE TABLE p product no integer name text UNIQUE price numeric and CREATE TABLE p product no integer name text
  • 最近邻居的 Postgis SQL

    我正在尝试计算最近的邻居 为此 我需要传递一个参数来限制与邻居的最大距离 例如 半径1000米内最近的邻居是哪些 我做了以下事情 我用数据创建了表 id name latitude longitude 之后 我执行了以下查询 SELECT

随机推荐

  • 在类中声明一个数组。 C++

    我想创建一个初始化数组和函数的类push向数组添加一个元素而不是打印它 作为初学者 我知道初始化有问题 除了函数之外一切正常push 它不打印数组 我的班级出了什么问题 include
  • 使用 exiftool 编辑 MP4 元数据

    我有一个 MP4 文件Title元数据 exiftool movie mp4 这使 Audio Bits Per Sample 16 Audio Sample Rate 48000 Handler Type Metadata Handler
  • 获取USB设备的父信息C++

    我正在开发一个 MFC 工具 用于检查连接的 USB 设备的一些驱动程序信息 例如位置信息 父级 硬件 ID 等 我已经获得了我想要的所有其他信息 但我一直在获取设备父级信息 我用过安装程序API dll在我的代码中获取设备信息 使用获取U
  • MSBuild with Azure - PublishProfileSet 计算结果为“”

    我正在尝试将我的项目部署到 Azure 我首先在 Azure 上研究 EF 代码几个小时 但我只用了一次就创建了一个用户 我去发布更新 现在收到以下错误 Invoke build failed due to exception Expect
  • QGraphicsView 和 QGraphicsItem:缩放视图矩形时不缩放项目

    我正在使用 QtQGraphicsView and QGraphicsItem 子类 当视图矩形更改时 有没有办法不缩放视图中项目的图形表示 例如放大时 默认行为是我的项目相对于我的视图矩形进行缩放 我想可视化二维点 这些点应该由一个细矩形
  • 我怎样才能卷曲深度爬行?

    我的 Deepcrawl 爬行仅给出 null 值 ch curl init curl setopt ch CURLOPT URL https api deepcrawl com accounts 00000 projects 195334
  • is.na() 应用于非(列表或向量)类型“NULL”意味着什么?

    我想从没有 NA 的 data frame 中选择具有前向过程的 Cox 模型 这是一些示例数据 test lt data frame x 1 runif 100 0 1 x 2 runif 100 0 5 x 3 runif 100 10
  • 检测 iOS 中的旋转变化

    我正在制作一个 iOS 应用程序 需要在旋转时进行一些界面重新排列 我试图通过实施来检测这一点 void orientationChanged NSNotification note 但这会在设备正面朝上或正面朝下时向我发出通知 我想要一种
  • 如何将数组对象中的数据保存到 MongoDB

    我在将数据从数组对象保存到 MongoDB 数据库时遇到问题 我有带有嵌入子文档的主文档的架构 主文档和所有其他子文档的保存均成功 但子文档是数组除外 正如您从屏幕截图中看到的 子文档中的字段没有保存到数据库中 Robo 3T 的屏幕截图
  • TaskGraph.useFilter 替代 kotlin dsl

    我正在寻找 gradle 中这行代码的替代方案 并且正在寻找 kotlin dsl 中的对应部分 任何人都可以对此进行一些说明 因为它阻止了我的构建 并且由于 usefilter 在 kotlin dsl 中不可用而不知所措 gradle
  • 双击:缩放 Android MapView?

    经过一些工作后 我的路线应用程序运行良好 我唯一想添加的是双击放大功能 但我不知道如何添加 你能给我一个提示吗 我也一直在寻找答案 示例 但找不到有效的代码 最后 这是对我有用的代码 MyMapActivity java public cl
  • 确定一个数字是否是十的倍数或在一组特定范围内

    我的程序中有一些需要的循环 我可以写出伪代码 但我不完全确定如何逻辑地编写它们 I need if num is a multiple of 10 do this if num is within 11 20 31 40 51 60 71
  • MvvmCross 5.x 的 MvvmCross 侧边栏导航

    我要为我的应用程序实现两种类型的导航 即侧边栏导航和父子导航 我的应用程序从汉堡 侧边栏 菜单开始 侧边栏菜单中的第一项应执行导航堆栈的重置并打开主视图 主视图控制器应该启动根堆栈导航 因此主视图上的每个按钮都应该打开一个新视图 新视图上的
  • 运行 Django 应用程序时出错

    当我在 pycharm 或 cmd 中运行 django 项目时 出现此错误 我应该怎么办 C Program Files x86 JetBrains PyCharm 3 4 1 bin runnerw exe C Python34 pyt
  • 如何简化url

    你好 在我的网站中 我发现他们的网址非常简单 例如 http example com questions 4486620 randomaccessfile probelm http example com questions 4486620
  • 为什么 MonkeyRunner.waitForConnection() 在我的环境中不起作用?

    Script from com android monkeyrunner import MonkeyRunner MonkeyDevice device MonkeyRunner waitForConnection 5 192 168 6
  • 在 SQL Server 2008 中存储闰秒

    这个周末是一个特别长的周末 因为将会有一场额外的第二秒 http en wikipedia org wiki Leap second Insertion of leap seconds插入之后23 59 596月30日 我们有一个全天候记录
  • c# - 在执行期间将信息从 UI 传递到 BackgroundWorker

    我有一个使用后台工作线程的 C 应用程序 并且非常成功地从正在运行的线程更新 UI 该应用程序涉及网络上的最短路径路由 随着后台工作进程的进行 我在 UI 上显示网络和最短路径 我想允许用户在应用程序运行时通过使用滑块减慢显示速度 我发现这
  • Javascript:如何检测浏览器窗口是否在 Android 设备上滚动到底部

    我正在我的应用程序中实现延迟加载功能 它在 iPhone 桌面 选项卡上都能正常工作 但不适用于 Android 手机 下面是我计算底部的代码 window on scroll function var scrollHeight scrol
  • 数据库性能:按列过滤与单独表过滤

    我想知道对于以下情况最好的方法是什么 我在数据库中有一个订单表 显然包含所有订单 但这些实际上是所有订单 因此包括刚刚标记为 完成 的完整 完成的订单 我想从所有未结订单中计算一些内容 例如未结金额 未结项目等 什么会更好的性能明智 保留