当前位置:首页 > 日记 > 正文

mysql())随意查询记录效率问题和解决方案共享

mysql())随意查询记录效率问题和解决方案共享
最近,有必要研究MySQL随机抽取的方法。例如,随机从tablename表中提取一个记录,写的一般方法是:选择字段的顺序(兰德)极限1。
实现上述结果有两种方法。
1。创建一个新的表,其中有5到5个表。然后使用伦德()命令获取一个随机数。
#指定范围的数据表
复制代码代码如下所示:
作者:萧强#(占卜)
#日期:2008-03-31
创建表randnumber
选择- 1作为数字
联盟
选择2
联盟
选择3
联盟
选择4
联盟
选择5
联盟
选择0
联盟
选择1
联盟
选择2
联盟
选择3
联盟
选择4
联盟
选择5

#得到随机数
作者:萧强#(占卜)
#日期:2008-03-31
选择号码
从randnumber顺序由伦德(1)限制

优点:随机数可以指定数据的一部分,不需要连续。
缺点:当随机数的范围非常宽时,很难建立一个表。
2。使用mysql()和()函数的圆()
一个SQL语句#修复
作者:萧强#(占卜)
#日期:2008-03-31
复制代码代码如下所示:
选择圆(((0.5-rand())* 2 * 5)
#笔记
# 0.5-rand()可以得到一个随机数0.5 + 0.5
#(0.5-rand)(* 2)可由随机数-获得1 + 1
#(0.5-rand)(* 2 * 5)可由随机数-获得5 + 5
#轮((((0.5-rand())* 2 * 5)可以得到随机整数从5到5

但后来我查看了MySQL的官方手册,而对于兰德(),它可能意味着不能在逐子句中使用兰德()函数,因为它会导致数据列多次扫描。然而,在MySQL 3.23版本中,仍然可以用兰德()实现随机顺序。
但这是一个真正的测试,发现效率很低,超过1500万的图书馆,查询5条数据,实际上超过8秒。

搜索谷歌,互联网基本上是查询MAX(ID)* *(),以便随机访问数据。
复制代码代码如下所示:
SELECT * FROM `表` T1连接(选择圆(RAND)*(选择(max(ID)从`表`)作为ID)为T2),t1.id t2.id顺序t1.id ASC限制> = 5;

但是这将产生5个连续的记录。这个解决方案每次只有一个查询和5个查询。即使如此,它也是值得的,因为15万个表,查询只需要不到0.01秒。
以下语句用于联接,MySQL的论坛
复制代码代码如下所示:
从表中选择*(从id到表(max)(ID)*伦德(从))表按ID限制为1的顺序;

我测试了它,它花了0.5秒,速度很好,但是与上面的语句有很大的差距。
所以我重写了语句。
复制代码代码如下所示:
从表中选择*
其中id(选择楼层=(兰德)* *(从表中选择(max(id))))
按ID限制订单1;

在这种情况下,效率提高了,查询时间仅为0.01秒。
最后,对句子进行了完善,并将min(id)添加到判断中,在测试开始时,我没有添加一个min(id)判断,结果是查询表中前几行的一半时间。
完整的查询语句是:
复制代码代码如下所示:
从表中选择*
其中ID(从(表)表(选择)- min(id)(选择)+表(+))中选择(=(*)(选择max(id)))
按ID限制订单1;
*选择
从'表'作为T1连接(选择圆(兰德())*((选择max(ID)选择))(+(max)(选择))+((x)))
在t1.id = t2.id
通过t1.id限1阶;

最后,这两个语句分别在PHP中进行了10次查询。
前者需要0.147433秒。
后者需要0.015130秒。
似乎使用连接的语法比直接使用函数效率更有效。
经过多次测试,我们得到的结果是使用连接的语法比直接使用的更快。有好朋友的朋友可以出来和别人聊天。

相关文章

在Linux下配置和安装Domino服务器3

在Linux下配置和安装Domino服务器3

配置,服务器,安装,电脑软件,Linux,评论:经过20多分钟的安装,它需要从新启动系统启动。然后notes用户账号登陆平台,然后打开终端。 1。添加系统搜索路径 路径= $路径: / / /仓选择莲花: / /笔记数据的地方。 两。输入数据存储目录 CD / / /本地…

让音乐可以扩散到PPT播放器中。

让音乐可以扩散到PPT播放器中。

音乐,器中,电脑软件,PPT,让音乐可以扩散到PPT播放器中。 15:27:38 2010-08-12作者:匿名编辑:拜恩评论(0) 让他们也看看他们。 {问题叙述} 为了提高PPT的动态效果,插入一段背景音乐,想从开始到结束比赛。但是当你切换到下一张幻灯片,音乐自动停…

查询windows未知设备和硬件id的图

查询windows未知设备和硬件id的图

图形,硬件,查询,解决方案,设备,点评:未知设备引起的各种原因,如电源管理驱动程序未安装等,我们可以通过ID来确定未知设备是否简单,该图正在寻找硬件id,请参考 一个由各种原因引起的未知设备,如没有安装电源管理驱动程序,你可以通过未知硬件ID的设…

电脑不显示游戏屏幕游戏屏幕到白色

电脑不显示游戏屏幕游戏屏幕到白色

屏幕,显示,解决方案,游戏,白色,问题: 电脑不能玩实况足球2013游戏,游戏结束后,不显示屏幕,进入白色屏幕。播放征途网络游戏画面不完整,甚至登录;退出按钮不显示,没有强进入游戏,蓝屏会出现重启现象。不知道发生了什么 答案uff1a 如果玩游戏和其他…

实现mysql查询结果的交集

实现mysql查询结果的交集

查询结果,电脑软件,mysql,一 如何在MySQL中实现下面的sql查询 (选择S. Name 来自学生的成绩单 在s.studid = t.studid和T.CrsCode = 'cs305) 横断 (选择S. Name 来自学生的成绩单 在s.studid = t.studid和T.CrsCode = 'cs315) 请哥哥先谢谢你…

Win8设置的方式自动调整其它声音的

Win8设置的方式自动调整其它声音的

设置,调整,音量,声音,方式,点评:自动调节其他音量,应该会有很多朋友不会的,不用担心,这篇文章的出现会帮你解决所有这些麻烦,有兴趣的朋友可以参考一下。 Win8可以自动调整其它声音的音量如下: 1、右击桌面空白,桌面弹出所有应用程序选项,左键单击…

所有搜索都不包含Dropbox文件夹(解

所有搜索都不包含Dropbox文件夹(解

解决方案,搜索,都不,内容,电脑软件,问题: 我经常使用所有的东西和Dropbox,发现所有的东西都无法搜索Dropbox文件夹的内容,而搜索其他文件夹是正常的。尝试所有的重构索引,刚刚开始,一段时间,问题再次出现。有没有什么方法可以完全解决它 答案uff…

Word无法启动显示开始,窗口将消失。

Word无法启动显示开始,窗口将消失。

无法启动,显示,窗口,电脑软件,Word,问题: 我的电脑是XP SP3的系统,有了最新的补丁,只安装了Office 2010,并已激活,Excel和PPT可以正常启动,但字不能启动,每次都显示开始,然后界面消失了。但发现使用其他帐户登录系统,你可以用正常启动Word,重新登录,…

该winoldap.exe-意义winoldap过程

该winoldap.exe-意义winoldap过程

意义,过程,电脑软件,winoldap,exe,综述:简要介绍了winoldap.exe - winoldap过程 进程文件:winoldap或winoldap.exe 进程名称:微软的MS DOS执行 过程类别:安全风险的过程 英文描述: winoldap.exe是一个合法的过程用计算机处理的旧的MS-DOS程序9…

LibreOffice4.2.3官方下载

LibreOffice4.2.3官方下载

下载,官方,电脑软件,点评:LibreOffice 4.1.4官方版正式更新,在不久的将来,下载 作为4.1系列的第五个分支LibreOffice版本的LibreOffice 4.1.4正式版已经发布,最近下载的。新版本包含很多功能更新和bug修复。建议老用户及时更新软件。 LibreOff…

苹果应用程序刷百万年的黑人收入

苹果应用程序刷百万年的黑人收入

收入,应用程序,黑人,电脑软件,苹果是一项常规调查,奇虎360的所有移动应用程序都在货架上,也通过App Store盈利的黑色利益链浮出水面。 市场调研公司董事长Rdquo昨天对《第一财经日报》(微博)表示:软件采用海军笔刷下载,赞扬,给对手不利的评论,而不…

hpztsb03.exe的过程是什么该hpztsb

hpztsb03.exe的过程是什么该hpztsb

查询,过程,功能,电脑软件,exe,点评:hpztsb03.exe是HP打印机桌面任务工具相关程序 进程文件:hpztsb03或hpztsb03.exe 进程名称:HP Deskjet任务栏实用 过程类别:安全风险的过程 英文描述: hpztsb03.exe是一个过程,属于HP Deskjet任务栏工具是安装…