如何从域中选择一个随机URL - 表:ID |网址|域 - 必须快

时间:2011-12-05 21:40:53

标签: mysql select random unique

我需要对此表进行快速查询:

ID | URL |域

示例:

   ID   URL                             Domain
    1   http://www.google.de/example1   http://www.google.de
    2   http://www.google.de/example2   http://www.google.de
    3   http://www.google.de/example3   http://www.google.de
    4   http://www.yahoo.de/example1    http://www.yahoo.de
    5   http://www.yahoo.de/example1    http://www.yahoo.de
    6   http://www.yahoo.de/example1    http://www.yahoo.de

该表包含1百万行...因此查询应该非常快地返回响应..

例如,我喜欢获得1000个独特的随机网址而不会有重复的网址....

我尝试过类似的事情:

SELECT x.* 
    FROM ( SELECT * 
               FROM table 
               ORDER BY RAND() ) x 
    GROUP BY domain LIMIT 1000

但需要1分钟才能给我一些结果......太费时了

表格结构是myisam,但如果我得到更快的结果,可以转换为其他任何内容

需要一些帮助

谢谢

1 个答案:

答案 0 :(得分:0)

SELECT  RAND() AS 'my_rand', t.*
FROM table t 
GROUP_BY domain
ORDER BY my_rand LIMIT 1000

我不确定它是多么随机,但它会在我的测试数据库中返回看似随机的结果。

我不确定您是否可以在不扫描所有行的简单查询中执行此操作。