大量数据的数据库设计[关闭]

2023-12-27

我正在开展一个项目,涉及来自美味网站的大量数据。可用数据为“日期、用户 ID、网址、标签”(针对每个书签)。

我将数据库规范化为 3NF,并且由于我们想要组合使用的查询的性质,我将其缩减为 6 个表...设计看起来不错,但是,现在大量数据存储在数据库中在数据库中,大多数查询需要将至少 2 个表连接在一起才能得到答案,有时是 3 或 4 个。起初,我们没有任何性能问题,因为为了测试目的,我们没有向数据库添加太多数据。现在我们拥有大量数据,仅仅连接非常大的表就需要花费大量时间,对于我们必须是实时的项目来说,这是一场灾难。

我想知道大公司如何解决这些问题。看起来规范化表只会增加复杂性,但是大公司如何处理数据库中的大量数据,他们不使用规范化吗?


既然您询问大公司(通常)如何处理此问题:

他们通常有一个 dba(数据库管理员),负责公司使用的数据库的生活和呼吸。

这意味着他们的人员了解一切,从如何优化表设计、配置和调整查询/索引/操作系统/服务器,到了解可能导致数据库出现问题的 RAID 控制器固件版本。

你没有过多谈论你做了什么样的调整,例如

  • 您使用的是 MyISAM 还是 InnoDB 表?对于不同的工作负载,它们的性能(尤其是它们的功能)截然不同。
  • 表是否根据您运行的查询正确索引?
  • 对所有查询运行 EXPLAIN - 这将帮助您识别可以添加/删除的键、是否选择了正确的键、比较查询(SQL 为您提供了很多方法来完成相同的事情)
  • 您调整了查询​​缓存吗?对于某些工作负载,查询缓存(默认打开)可能会导致相当大的速度减慢。
  • 你的机器有多少内存,mysql 是否经过调整以利用它?
  • 您是否使用针对数据库的文件系统和 raid 设置?
  • 有时需要一点反规范化。
  • 不同的数据库产品会有不同的特性,MySQL 对于某些世界可能会非常快,而对于另一些世界则可能很慢。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大量数据的数据库设计[关闭] 的相关文章

随机推荐

  • 如何将键值对插入到字典的指定位置?

    如何在从 YAML 文档加载的 python 字典中的指定位置插入键值对 例如 如果字典是 dict Name Zara Age 7 Class First 我想插入元素 Phone 1234 before Age and after Na
  • 正则表达式 - 查找所有不以特定前缀开头的匹配单词

    如何构造正则表达式来查找以字符串结尾但不以字符串开头的所有单词 例如查找以下句子中所有以 friend 结尾但不以 girl 开头的单词 A 男朋友 and 女朋友获得了friend当他们要求befriend them 中的项目bold应该
  • 在 NextJS 中添加自动单位的 Google Ads 代码

    我正在开发一个 nextjs 项目 我必须实现用于自动广告的 google AdSense 代码 所以 我的谷歌广告代码就是这样的 没有特定的广告单元代码 根据此脚本加载 Google 将自动添加广告 在这种情况下 我将如何在我的 Next
  • 通过 Torque 将 Julia 文件提交到集群时导入 PyPlot 时出现问题

    我正在学校的集群上运行一些 Julia 代码 调用 test julia jl 的 bps 文件如下 1 bin tcsh 2 3 PBS l walltime 24 00 00 4 PBS l nodes 1 ppn 1 5 PBS N
  • Haskell $ 运算符是否存在逆操作?

    一个简单的问题是 Haskell 中是否有一个运算符 其工作方式类似于美元符号 但优先考虑左侧 IE 代替 f x 1 被写成 f x 1 我想把它写成 x 1 f 这纯粹是一个风格问题 我正在按顺序运行一系列函数 如果我可以从左到右编写它
  • Ada - 提出可访问性检查

    我从Github下载了这个程序 https github com raph amiard ada synth lib https github com raph amiard ada synth lib 我尝试了第一个例子 但遇到了一个例外
  • Maven 父 POM 与 BOM 依赖管理

    假设我有一个 Maven 父 POMroot它定义了foo bar 1 0 0在依赖管理中 我有另一个父 POMparent它使用root作为父级 只是为了向示例添加另一个层 最后我有一份材料清单bom它使用root作为其父级但重新定义fo
  • 如何使“Enter”键的行为类似于 JFrame 上的“提交”

    我正在构建一个客户端 服务器应用程序 我想让用户在身份验证框架上变得轻松 I want to know how to make enter key submits the login and password to the Database
  • 您需要使用不同的包名称,因为“com.example”受到限制

    我已经在这里找到了很多关于这个问题的线程 但没有一个对我有用 我使用的是Android Studio 2 1 2 并且我仍然有com example域名 在清单或任何其他文件中更改它会导致出现大量错误 而我的 build gradle 仅显
  • SwiftUI:两指滑动(滚动)手势

    我对 2 指滑动 滚动 手势感兴趣 不是两指拖动 而是两指滑动 无需按下 就像在 Safari 中用来向上和向下滚动一样 据我所知 没有一个基本手势可以用于此目的 TapGesture 不是 LongPressGesture 不 DragG
  • 防止多次登录

    我试图在我的应用程序中阻止同一用户的多次登录 我的想法是在用户登录时更新安全标记并将其添加为声明 然后在每个请求中将 cookie 中的标记与数据库中的标记进行比较 这就是我的实现方式 public virtual async Task
  • 滚动条没有出现?

    我正在为 Tumblr 开发主题 但由于某种原因滚动条没有出现 这是博客的网址 http infinitethemedewitt tumblr com 主题的代码可以通过右键单击在页面源代码中找到 除了 html 之外的所有代码 因为它被
  • fopen 不显示内容

    不知道为什么我的即时通讯页面出现空白 txt 中有数据 php 中没有错误 这是 txt Product txt ID OID Title Description Option Price 01 01JAP Japanese Mod
  • CarrierWave + RMagick 方形裁剪?

    我正在尝试使用 Ruby on Rails CarrierWave 和 RMagick 制作固定的方形图像裁剪 我尝试过以下两种方法 但没有运气 version thumb do process resize to fit gt 200 2
  • C# 十进制格式化查询

    我正在尝试格式化小数 以便它显示如下 14 5 应显示为 14 50 14 50 应显示为 14 50 14 05 应显示为 14 05 14 00 应显示为 14 是否可以使用单一字符串格式 即不使用条件格式 我尝试过 0 不满足第一个示
  • 水平滚动列表

    我希望将图像显示在水平列表中 这就是我到目前为止所做的 var list Ext create Ext List store store itemTpl new Ext XTemplate img src icon inline true
  • 设置解析注册的默认个人资料图片

    我试图在注册时在解析中设置默认的个人资料图片 该图片位于我的项目文件夹中 有什么办法可以设置不上传照片吗 var user new Parse User user set username username val user set pas
  • 在 HyperLedger Composer 查询中获取资产计数?

    我想在 HyperLedger Composer 中编写一个查询 返回我在超级账本中拥有的资产数量 我有数千条记录 我不想将它们全部获取并计算计数 数据传输会很慢 我希望查询返回计数 不幸的是 这儿没有count使用作曲家查询语言 您必须创
  • cocos2d 计算给定起点、角度和距离的目的地点

    我想快点吧 Cocos2d 和 xcode 中的 2d 问题 I have CGPoint currPoint float lineLength float angle 现在 我需要找到距离 currPoint 角度为 lineLength
  • 大量数据的数据库设计[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在开展一个项目 涉及来自美味网站的大量数据 可用数据为 日期 用户 ID 网址 标签 针对每个书签 我将数据库规范化为 3NF 并且由于我们