仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 741|回复: 8
打印 上一主题 下一主题

[学习教程] 公布MySQL 从表中掏出随机数据

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:10:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
“对于MySQL数据库,无论是在开发方面,还是支持方面,现在有大量强大的MySQL学习教程可以选择。每一个新手开发者可以轻松地使用MySQL数据库进行开发。你不克不及在一个ORDERBY子句用RAND()值利用列,由于ORDERBY将反复盘算列屡次。但是在MySQL3.23中,你能够做:SELECT*FROMtable_nameORDERBYRAND(),这是有益于失掉一个来自SELECT*FROMtable1,table2WHEREa=bANDc  完成随机,从手册中找到了上面这个语句,能够完成义务:

  SELECT*FROMtable_nameORDERBYrand()LIMIT5;

  rand在手册里是这么说的::

  RAND()

  RAND(N)

  前往在局限0到1.0内的随机浮点值。假如一个整数参数N被指定,它被用作种子值。

  mysql>selectRAND();

  ->0.5925

  mysql>selectRAND(20);

  ->0.1811

  mysql>selectRAND(20);

  ->0.1811

  mysql>selectRAND();

  ->0.2079

  mysql>selectRAND();

  ->0.7888

  你不克不及在一个ORDERBY子句用RAND()值利用列,由于ORDERBY将反复盘算列屡次。但是在MySQL3.23中,你能够做:SELECT*FROMtable_nameORDERBYRAND(),这是有益于失掉一个来自SELECT*FROMtable1,table2WHEREa=bANDc

  注重在一个WHERE子句里的一个RAND()将在每次WHERE被实行时从头评价。

  但试了一下,8千笔记录的表,实行一次必要0.08sec,慢了些。厥后就教了google,失掉以下代码:

  SELECT*FROMtable_nameASr1JOIN(SELECTROUND(RAND()*(SELECTMAX(id)FROMtable_name))ASid)ASr2WHEREr1.id>=r2.idORDERBYr1.idASCLIMIT5;

  实行效力必要0.02sec.惋惜的是,只要mysql4.1.*以上才撑持如许的子查询.
RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-18 18:19:17 | 只看该作者
你可以简单地认为适合的就是好,不适合就是不好。
乐观 该用户已被删除
板凳
发表于 2015-1-26 12:58:57 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
兰色精灵 该用户已被删除
地板
发表于 2015-2-4 17:05:55 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
飘灵儿 该用户已被删除
5#
发表于 2015-2-10 04:59:21 | 只看该作者
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
小魔女 该用户已被删除
6#
发表于 2015-2-28 21:03:35 | 只看该作者
发几份SQL课件,以飨阅者
再现理想 该用户已被删除
7#
发表于 2015-3-10 08:02:49 | 只看该作者
大家注意一点。如下面的例子:
飘飘悠悠 该用户已被删除
8#
发表于 2015-3-17 06:03:17 | 只看该作者
光写几个SQL实在叫无知。
柔情似水 该用户已被删除
9#
发表于 2015-3-23 22:47:21 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-1 09:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表