从mysql的大表中快速选择随机行

2023-12-23

从大型 mysql 表中选择随机行的快速方法是什么?

我正在使用 php 工作,但我对任何解决方案都感兴趣,即使它是另一种语言。


获取所有 id,从中随机选择一个,然后检索整行。

如果您知道 id 是连续的且没有漏洞,则可以获取最大值并计算随机 id。

如果到处都有漏洞,但主要是顺序值,并且您不关心稍微倾斜的随机性,请获取最大值,计算 id,然后选择 id 等于或大于您计算的值的第一行。倾斜的原因是,跟随此类洞的 id 比跟随另一个 id 的洞有更高的机会被选中。

如果你随机订购,你的手上将会有一次可怕的桌子扫描,并且这个词quick不适用于这样的解决方案。

不要这样做,也不应该通过 GUID 订购,它也有同样的问题。

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

从mysql的大表中快速选择随机行 的相关文章

  • SQL Server 2008 中的全文搜索一步一步

    如何开始使用SQL Server 2008 中的全文搜索 阅读这些链接 SQL SERVER 2008 创建全文目录和全文搜索 http blog sqlauthority com 2008 09 05 sql server creatin
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • 使用 FileTable 通过 SQL INSERT 创建子目录

    之前 我请求如何在一个目录中创建一个目录FileTable不使用文件 I O API https stackoverflow com q 10483906 175679 我现在想为刚刚创建的父目录创建一个子目录 在插入期间如何分配我的父母
  • 使用 Laravel 和 Eloquent 从表中选择全部

    我正在使用 Laravel 4 设置我的第一个模型 以从名为的表中提取所有行posts 在标准 MySQL 中我会使用 SELECT FROM posts 如何在 Laravel 4 模型中实现这一目标 我的完整模型源代码如下
  • 随机打乱 C++ 数组(每次都不同)

    我想在C 中对数组进行洗牌 并且每次运行程序时 我想要进行不同的随机洗牌 我有myArray的长度 目前我正在使用 random shuffle myArray myArray N 但这每次都会产生相同的洗牌 为了包含随机数 我尝试过 ra
  • java.lang.NoSuchMethodError:没有虚拟方法 setTag(Ljava/lang/Object;)

    我刚刚完成使用登录和注册屏幕与齐射的代码 但在模拟器中运行时我收到此错误 java lang NoSuchMethodError No virtual method setTag Ljava lang Object Lcom android
  • 如何在“order by”中添加条件?

    我有一个带有输入参数的存储过程 现在根据这个参数 我的 order by 语句将发生变化 如果输入参数是 ID int类型列 则按ID排序 如果是 ProductType 则按产品类型排序 如果是 IssueDate 则应按问题日期排序 现
  • 如何选择列值不不同的每一行

    我需要运行一个 select 语句 返回列值不不同的所有行 例如 EmailAddress 例如 如果表格如下所示 CustomerName EmailAddress Aaron email protected cdn cgi l emai
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • 将数据表传递到存储过程。有没有更好的办法?

    数据表可以以某种方式传递到 SQL Server 2005 或 2008 中吗 我知道标准方法似乎是将 XML 传递给 SP 并且可以通过某种方式轻松地将数据表转换为 XML 来实现这一点 将 NET 对象传递到 SP 怎么样 那可能吗 我
  • 蟒蛇 | MySQL | AttributeError:模块“mysql.connector”没有属性“connect”

    我正在学习 python 中的一个新库 mysql 我尝试执行以下命令 import mysql connector mydb mysql connector connect host localhost user root passwd
  • 如何删除MySQL中的所有事件

    如果我想删除某个事件 我需要查询类似的内容 DROP EVENT IF EXISTS eventname 但我找不到一次性删除所有事件的命令 必须一项一项地删除 有没有一次性删除所有事件的SQL DROP EVENT IF EXISTS S
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 什么是更好的?子查询或内连接十个表?

    一个旧系统已抵达我们的办公室进行一些更改和修复 但它也存在性能问题 我们并不确切知道这种缓慢的根源是什么 当我们重构旧代码时 我们发现了几个具有以下模式的 sql 查询 出于示例目的 简化了查询 SELECT SELECT X FROM A
  • LEFT JOIN 比 INNER JOIN 快得多

    我有一张桌子 MainTable 有超过 600 000 条记录 它通过第二个表连接到自身 JoinTable 在父 子类型关系中 SELECT Child ID Parent ID FROM MainTable AS Child JOIN
  • 无法加载身份验证插件“caching_sha2_password”

    我正在将 MySQL 8 0 与 MySQL Workbench 连接并收到以下错误 无法加载身份验证插件 caching sha2 password dlopen usr local mysql lib plugin caching sh
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • 如何重置 SQL Server 中表的 IDENTITY 列? [复制]

    这个问题在这里已经有答案了 我怎样才能重置我的IDENTITY我已经填充的表中的列 我尝试过类似的方法 但它不起作用 WITH TBL AS SELECT ROW NUMBER OVER ORDER BY profile id AS RN
  • 为什么随机不那么随机?

    有人可以解释一下现代编程语言 java c python javascript 如何应对随机性的限制以及这些限制 例如基于时间的种子 的起源 即 如果它们是由底层操作系统和基于英特尔的硬件强加的 基本上我想了解为什么没有适当的硬件就没有真正

随机推荐