帮助从MySQL查询中获取或显示ColdFusion中的随机记录?

帮助从MySQL查询中获取或显示ColdFusion中的随机记录?,sql,mysql,coldfusion,cfc,random,Sql,Mysql,Coldfusion,Cfc,Random,我有一个jquery滚动/滚动程序,它显示从“有用提示”数据库表查询返回的记录片段。我想把滚动条保持在大约15条记录,但不总是前15条记录 编写如下查询是否更有效: SELECT * FROM table ORDER BY RAND() LIMIT n 哪个返回一个随机结果,还是返回整个查询并让ColdFusion组件提供一个随机数的查询结果 我的滚动条的未来也将包括我的“待售物品”表中的随机记录,因此我需要记住这一点。返回整个结果集,然后将其中大部分扔掉肯定会降低效率 当您要包含来自其他表的

我有一个jquery滚动/滚动程序,它显示从“有用提示”数据库表查询返回的记录片段。我想把滚动条保持在大约15条记录,但不总是前15条记录

编写如下查询是否更有效:

SELECT *
FROM table
ORDER BY RAND()
LIMIT n
哪个返回一个随机结果,还是返回整个查询并让ColdFusion组件提供一个随机数的查询结果


我的滚动条的未来也将包括我的“待售物品”表中的随机记录,因此我需要记住这一点。

返回整个结果集,然后将其中大部分扔掉肯定会降低效率

当您要包含来自其他表的数据时,您可以运行另一个查询,就像您已经得到的查询一样,然后在ColdFusion中将结果混合在一起

为了完整性起见,这样的事情是可能的,尽管太慢了,不实用:

( SELECT * FROM table1 )
UNION
( SELECT * FROM table2 )
ORDER BY RAND()
LIMIT 30 

返回整个结果集,然后将大部分结果扔掉,效率肯定会降低

当您要包含来自其他表的数据时,您可以运行另一个查询,就像您已经得到的查询一样,然后在ColdFusion中将结果混合在一起

为了完整性起见,这样的事情是可能的,尽管太慢了,不实用:

( SELECT * FROM table1 )
UNION
( SELECT * FROM table2 )
ORDER BY RAND()
LIMIT 30 

除非缓存一个相对较小的静态查询,否则在数据库端随机记录通常更有效。这样,您每次只提取15条记录,而不是表中的所有记录。

除非缓存相对较小的静态查询,否则在数据库端随机记录通常更有效。这样,您每次只提取15条记录,而不是表中的所有记录。

我同意bemace的观点,即返回一个不用于Coldfusion的大型值结果集是对资源的浪费,永远无法收回


但是在使用()时要小心,您应该这样做。

我同意bemace的观点,即返回大量不会用于Coldfusion的值的结果集是对资源的浪费,永远无法收回


但是要小心使用(),你应该这样做。

所以,我从链接上看了你的另一篇文章。你能帮我理解为什么那样更有效吗?还有,谢谢你。这正是我想要的答案。我真的很想解决长期的可伸缩性问题。很抱歉。关于缩放问题的好文章@OMG Ponies+1+1当我“知道”答案,然后有人找到一个更好的答案时,这总是很好的。所以,我从链接上看了你的另一篇文章。你能帮我理解为什么那样更有效吗?还有,谢谢你。这正是我想要的答案。我真的很想解决长期的可伸缩性问题。很抱歉。关于缩放问题的好文章@OMG Ponies+1+1当我“知道”答案,然后有人找到一个更好的答案时,这总是很好的