`
kisa77
  • 浏览: 28202 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Mysql利用随机取N条记录的方法

阅读更多
select SQL_NO_CACHE  cid,account,country,companyname 

FROM f_company as c 

JOIN (select ROUND(rand() * ((SELECT MAX( cid ) 

FROM f_company))) as id) AS T 

where c.cid >= T.id limit 10 

 

直接上代码,留作记录,怕以后忘掉。网上很多的那种order by rand(),效率很差,就不讨论了。这种方法是网上看到的,自己测了一下效果还可以。

 

废话一下:
SELECT MAX( cid ) FROM f_company 语句取出f_company表中cid最大的记录
随机浮点数rand()与上面得到的最大cid相乘,结果再取整(该记录即为随机数)
where条件中 c.cid >= T.id 得到cid大于该随机数的所有记录,然后加limit 10
即得到最终想要的10条随机记录.

在我目前的环境,80万记录的f_company表(约780M)查询用时在0.006秒到0.016秒之间,可以接受。

分享到:
评论

相关推荐

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    MySql实现分组取n条最大记录.txt

    MySql实现分组取n条最大记录,还在为分组取最大困扰么?

    PHP实现在数据库百万条数据中随机获取20条记录的方法

    本文实例讲述了PHP实现在数据库百万条数据中随机获取20条记录的方法。分享给大家供大家参考,具体如下: 额,为什么要写这个? 在去某个公司面试时,让写个算法出来,当时就蒙了,我开发过程中用到算法的吗?又不是...

    php随机取mysql记录方法小结

    本文实例总结了php随机取mysql记录方法。分享给大家供大家参考。具体分析如下: 在php中要随机取mysql记录我们可以直接使用mysql_query来执行mysql中的select rand函数获取的数据并读出来,这里就来给大家简单介绍...

    MySQL 多表关联一对多查询实现取最新一条数据的方法示例

    本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...

    Mysql快速生成10000条随机数据(存储过程)脚本

    通过存储过程快速生成实验所需的随机数据,包含创建表,创建存储过程和调用存储过程

    mysql随机查询若干条数据的方法

    在mysql中查询5条不重复的数据,使用以下: 代码如下:SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了。但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上搜索Google...

    MySQL获取所有分类的前N条记录

    本文给大家分享的是使用mysql实现获取所有分类的前N条记录的方法,本文给出了3个示例,有需要的小伙伴可以参考下。

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    mysql优化取随机数据慢的方法

    这里我是直接使用mysql rand by函数来直接,几千条记录没关系,但如果到了几万条感觉要几秒,这个就很慢了,下面小编与大家一起来看看mysql 取随机数据慢优化过程。MySQL很多时候需要获取随机数据,举个例子,要从...

    MySQL查询随机数据的4种方法和性能对比

    原因是因为MySQL会创建一张零时表来保存所有的结果集,然后给每个结果一个随机索引,然后再排序并返回。有几个方法可以让它快起来。基本思想就是先获取一个随机数,然后使用这个随机数来获取指定的行。由于所有的行...

    mysql利用存储过程批量添加数据库表随机测试内容

    mysql利用存储过程批量添加数据库表随机测试内容

    MySql分组后随机获取每组一条数据的操作

    思路:先随机排序然后再分组就好了。 1、创建表: CREATE TABLE `xdx_test` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `class` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=...

    MySQL一些随机函数记录

    MySQL一些随机函数记录 有时候我们需要模拟数据的进行测试,你是不是还在输入姓名,张三1,张三2?,手机号码13411111111?来来来,咱们可以用自定义函数来解决随机数据的生成,通过存储过程来批量插入数据。 1、...

    MySQL函数 获取随机字符串

    MySQL自定义函数 获取随机字符串. string = date +time + random(6)

    chat聊天室增加mysql记录功能

    chat聊天室增加mysql记录功能 nodejs

    MySQL中查询、删除重复记录的方法大全

    本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as count from user_table group by title having ...

Global site tag (gtag.js) - Google Analytics