随机化大数据集

2024-07-01

我正在尝试找到一种从大型数据集中进行随机选择的方法。

我们预计该集合将增长到大约 500K 条记录,因此找到一种在集合增长时保持良好性能的方法非常重要。

我尝试了一种技术:http://forums.mysql.com/read.php?24,163940,262235#msg-262235 http://forums.mysql.com/read.php?24,163940,262235#msg-262235但它并不完全是随机的,并且不能很好地与LIMIT子句,您并不总能获得所需的记录数。

所以我想,由于 PK 是 auto_increment,我只需生成一个随机 id 列表并使用 IN 子句来选择我想要的行。这种方法的问题在于,有时我需要一组随机数据,其中的记录具有特定状态,该状态最多只占总数据集的 5%。为了做到这一点,我首先需要找出我的 IDcan使用具有特定状态的,所以这也不起作用。

我使用的是mysql 5.1.46,MyISAM存储引擎。
重要的是要知道选择随机行的查询将非常频繁地运行,并且它从中选择的表会频繁地附加到其中。

任何帮助将不胜感激!


您可以通过一些非规范化来解决这个问题:

  • 构建一个包含与数据表相同的 pkey 和状态的辅助表
  • 添加并填充状态组列,该列将是您自己自动编号的一种子键(相对于单个状态的基于 1 的自动增量)
Pkey    Status    StatusPkey
1       A         1
2       A         2
3       B         1
4       B         2
5       C         1
...     C         ...
n       C         m (where m = # of C statuses)

当您不需要过滤时,您可以在 pkey 上生成 rand #s,如上所述。当您确实需要过滤时,请针对您感兴趣的特定状态的 StatusPkeys 生成兰特。

有多种方法可以构建此表。您可以有一个间歇运行的程序,也可以实时执行。但后者会对性能造成影响,因为计算 StatusPkey 的成本可能会很高。

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

随机化大数据集 的相关文章

  • 从条件表中获取 WHERE 子句的条件

    我创建了以下简单的DataModel 我用以下数据填充了表格 1 桌子Customer INSERT INTO test customer CustomerName Country RegistrationDate VALUES Custo
  • mysql 中的 SELECT UNION 和 ORDER BY.. 如何?

    我想从单个表中获取所有行 但以不同的方式对它们进行排序 例如我写 SELECT FROM table1 ORDER BY fieldA ASC LIMIT 3 UNION SELECT FROM table1 ORDER BY FieldB
  • MySQL 选择 table01 中不存在于 table02 的行[重复]

    这个问题在这里已经有答案了 我有两个表 table03 有 10 行 table01 有 21 行 现在我想从 table03 中获取 table01 中不存在的行 到目前为止我编写了这个查询 但它显示了 table03 的所有行 即使有些
  • android php 连接错误? (添加java代码)

    我试图从 android 应用程序获取位置 纬度 经度 并使用 php 插入数据库 然后提取 10m 半径内的数据 问题是 当我使用智能手机测试代码时 本地测试正常 数据未正确插入 表 usergps 有 3 列 名称 纬度 经度 在我测试
  • 如何使用 OOP 从另一个 .php 到另一个 .php 的类使用 $db?

    我是 OOP PHP 的新手 自从开始 Web 开发以来我一直在使用过程 API 所以我很难迁移到 OOP 假设我有这四个 php文件和结构如下 连接 db php
  • 将 mysql 连接传递给 python 线程时管道损坏

    我正在尝试将 mysql 连接传递给 python 中的线程 如果我在工作类中进行 mysql 的初始化 则不会出现错误 但是 连接的成本可能很高 因此我尝试仅从调用者函数传递 mysql 连接 请参见下面的代码 但这一直抛出这个错误 20
  • 对许多站点使用中央数据库服务器:合理吗?

    基本上 我需要在多达几十个站点上同步数据库数据的某些部分 完美的解决方案是创建一个中央服务器来托管该数据 每个页面加载都必须从两个数据库服务器 本地和远程数据库服务器 获取数据 并且写入远程服务器也很常见 虽然数据库服务器在硬件方面可以达到
  • UNION SELECT - 循环?还是单个查询?

    如果我使用 UNION 从数据库中进行多个 SELECT 是否被视为一个查询 或多个查询 SELECT column name s FROM table1 UNION SELECT column name s FROM table2 这是否
  • 选择两列之和的最大值

    我有一个表格比较 如果我跑 SELECT comparisonID stu1Vers stu2Vers stu1 stu2 from comparisons WHERE stu1 stu2 and assignmentid 9 我得到类似的
  • 随机化大数据集

    我正在尝试找到一种从大型数据集中进行随机选择的方法 我们预计该集合将增长到大约 500K 条记录 因此找到一种在集合增长时保持良好性能的方法非常重要 我尝试了一种技术 http forums mysql com read php 24 16
  • mysql:显示表-定义列名

    我正在用 LIKE 执行 mySQL SHOW TABLES 例如 show TABLES like address 返回以 address 开头的所有表 效果很好 返回的表名的列名是 Tables in username users ad
  • 从 NumPy 数组中随机选择单元格 - 无需替换

    我正在 NumPy 中编写一些建模例程 需要从 NumPy 数组中随机选择单元格并对它们进行一些处理 必须选择所有单元格而不进行替换 例如 一旦选择了单元格 就不能再次选择它 但最后必须选择所有单元格 我正在从 IDL 过渡 在那里我可以找
  • 如何在 Eclipse EE (Java) 上配置 mySQL

    下载 Java EE Eclipse Indigo EE mysql 5 5 从现在起我不知道如何直接从 eclipse 创建 mySQL 数据库 我已经找到了使用 WAMP 服务器的方法 但我并不打算这样做 我相信第一步在于以某种方式使用
  • SQL自连接返回特定行

    跳到底部以避免冗长的解释 Ok so 我正在公司内部网上工作 用于管理客户工作 作业由元素组成 示例元素可能是 构建六页网站 或 设计徽标 每个元素都由一系列角色时间组成 因此 构建一个六页网站 可能包括四个小时的 开发人员 时间和两个小时
  • 在MySQL中保存使用触发器删除记录的用户的USER_ID

    我正在尝试设置一系列历史记录触发器 以通过触发器自动收集给定表的历史记录 我想使用触发器 因为这可以保证我捕获所有更改 无论是否有人忘记将其保存在应用程序中 我的问题是我有这个触发器 CREATE TRIGGER db delete his
  • phpMyAdmin 处理请求时出错错误代码:500 错误文本:内部服务器错误[重复]

    这个问题在这里已经有答案了 当我运行 phpMyAdmin 并单击导出 导入时 我总是收到错误 处理请求时出错 错误代码 500 错误文本 内部服务器错误 操作系统 Ubuntu 18 04 我遇到了问题 我的 php 版本是7 2 实际上
  • Moodle 2.0 与 Nginx 后端

    您好 我正在寻找有关如何为 Moodle 2 0 配置服务器 以 nginx 作为服务器 以 PHP FPM 或 FastCGI 以 mySQL 作为后端 的教程 抱歉 如果我对服务器架构菜鸟的这些术语感到困惑 可能会在 Ubuntu De
  • 从包含 n 个元素的向量中随机选择 m 个元素

    我有一个向量包含n元素 我需要选择一个子集m向量中随机出现的元素 不重复 做到这一点最有效的方法是什么 我需要在我的代码中执行此操作数千次 我想到的解决方案是使用rand 生成一个随机数k之间0 and n 然后选择k向量中的第一个元素并将
  • PHP/MySQL:从 YYYY-MM-DD 转换为 DD 月,YYYY?

    我在 MySQL 表中有一个 DATE 列 它以以下格式表示日期 YYYY MM DD 我想使用 PHP 从数据库中检索日期 但显示如下 DD 月 YYYY 例如 从 2009 04 13 到 2009 年 4 月 13 日 女巫是最好的方
  • Hibernate 中的枚举,作为枚举持久存在

    在我的 MySQL 数据库中 有一列 gender enum male female 我创建了我的枚举 com mydomain myapp enums Gender 并在我的Person实体我被定义为 性别 现在我想将枚举类型保留在我的

随机推荐

  • 如何创建解决方案级NuGet包?

    如何创建解决方案级 NuGet 包 也就是说 它不涉及任何项目 并列在 nuget packages config 中 不在任何项目级的 packages config 文件中 例如 psake 和 RavenDB Server 是解决方案
  • 在一台计算机上的一个 Git 中切换用户身份[重复]

    这个问题在这里已经有答案了 I have ONE存储库于GitHub 我们称之为Repo 1 我想首先访问该存储库默认 Git 用户 让我们调用该用户User 1 我创建SSH 密钥对 一切都很好 效果很好 I made ANOTHER存储
  • 使用 Strope 库传输 XMPP 文件

    谁能告诉我使用 strope 在 XMPP 中实现文件传输 图书馆 我建议使用XEP 0065 SOCKS5 字节流 http xmpp org extensions xep 0065 html恐怕你需要自己编码
  • 在动画期间更改 jQuery 的动画持续时间

    是否可以更改duration当前正在运行的两个不同值之间的 jQuery 动画 我尝试过改变duration通过直接赋值 但没有成功 var timing duration 4000 document click function e ti
  • 我们应该如何编写 get 方法,以便私有字段不会逃脱其预期范围? [复制]

    这个问题在这里已经有答案了 来自 Java 并发实践 发布一个对象可能会间接发布其他对象 如果您添加一个 已发布的knownSecrets 集的秘密 您还发布了 秘密 因为任何代码都可以迭代 Set 并获取对的引用 新的秘密 类似地 从非私
  • 文档片段如何工作?

    谁能简要解释一下 documentFragment 的实际用途吗 我一直在寻找明确的解释 但直到现在我还没有得到任何解释 我读到的是 documentFragment 是类似于 DOM 的结构 我们可以在其中添加修改 DOM 元素 而不会中
  • Mongoose:如何在不填充第一层字段的情况下填充 2 层深层人口?在 mongodb 中

    这是我的猫鼬架构 var SchemaA new Schema field1 String fieldB type Schema Types ObjectId ref SchemaB var SchemaB new Schema field
  • Google 地图中的 Fusion Table 将不会显示整个几何图层

    我在谷歌驱动器中创建了一个新的融合表 其中包含放置在某些城镇上的大型子集几何图形 然而 当我查看地图和相应的融合表叠加层时 只会显示与城镇相关的几何图形的某些部分 有些城镇甚至根本不会显示几何图形 当在谷歌地球中查看相同的 kml 文件时
  • AA 级辅助功能 - 使用文本阴影增强颜色对比度

    我有一个网站 正在根据 WCAG 2 0 AA 级合规性进行编码 但其中一个按钮的颜色对比度未通过 背景 D57405 前景 FFF 是否可以使用文本阴影来增强对比度 这会被视为通过吗 我可以为不支持文本阴影的浏览器提供不同的颜色 但我想尝
  • 客户端验证的 ASP.NET MVC 验证摘要

    我们的服务器端验证 通过数据注释 运行良好 并按照我们喜欢的方式在 ValidationSummary 中发布错误 客户端验证也可以工作 但是错误显示在控件的右侧 并且验证摘要从不显示 有没有一种简单的方法可以使客户端验证显示看起来像服务器
  • github权限错误(ssh密钥无法识别)

    从另一个 本地 存储库推送到 github 帐户后 我似乎失去了对它的权限 我现在收到以下错误 git push Permission denied publickey fatal The remote end hung up unexpe
  • 将搜索放大镜更改为 UIActivityIndi​​catorView

    我有一个应用程序可以在 13 000 个单元格中搜索文本 我知道这是很多细胞 在较旧的 iPhone 上 搜索需要花费几秒钟的时间 因此我想提供一个指示器视图 向用户显示该应用程序仍在运行 我想出了将 UISearchBar 放大镜更改为
  • 如何将 iBATIS 查询与 select 子句中的参数化列映射?

    我想要一种方法 可以从数据库中特定表的列中查找特定值 其中列的名称作为参数传入 因此 Java 方法将具有以下签名 public Integer getFoo String column throws DataAccessException
  • Bloomberg API 请求超时

    设置 ReferenceDataRequest 后 我 将其发送到 EventQueue Service refdata session GetService blp refdata Request request refdata Crea
  • 如何从表格格式的发票中提取数据

    I m trying to extract data from pdf image invoices using computer vision For that i used ocr based pytesseract this is s
  • 取消引用空指针

    即使在强制转换 void 指针之后 我在取消引用它时也会遇到编译错误 谁能告诉我这是什么原因 int lVNum 2 void lVptr lVptr int lVNum printf nlVptr 60 is d n lVptr 1 取消
  • Rails 4 嵌套形式 - 没有将 Symbol 隐式转换为 Integer

    在我的 Rails 4 应用程序中 我有一个三重嵌套路线 devise for users do resources foo do resources marflar end end 我有一个用于创建带有嵌入的 Marflar 对象的新 F
  • 使用 string.endswith() 的匹配大小写来处理不同可能的字符串结尾

    我想迭代一个目录并根据扩展名将文件排序到单独的列表中 我想使用匹配大小写来执行此操作 而不是使用许多单独的 else if 大致如下 for file in os listdir dirpath filename os fsdecode f
  • 如何使用不同的fxml文件创建多个javafx控制器?

    我一直在查看一些博客和其他 stackoverflow 问题 但没有看到我的问题的直接答案 我正在创建一个 javafx gui 客户端 我希望我的菜单栏成为一个 fxml 中的一个控制器 然后我希望内容区域成为附加的 fxml 文件 登录
  • 随机化大数据集

    我正在尝试找到一种从大型数据集中进行随机选择的方法 我们预计该集合将增长到大约 500K 条记录 因此找到一种在集合增长时保持良好性能的方法非常重要 我尝试了一种技术 http forums mysql com read php 24 16