Mysql 如何从域中随机选择一个url-表:ID | url | domain-必须快速

Mysql 如何从域中随机选择一个url-表:ID | url | domain-必须快速,mysql,select,random,unique,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.go

我需要此表的快速查询:

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
该表包含100万行…因此查询应快速返回响应

例如,我喜欢获得1000个唯一的随机URL,而不需要重复的域

我试过这样的方法:

SELECT x.* 
    FROM ( SELECT * 
               FROM table 
               ORDER BY RAND() ) x 
    GROUP BY domain LIMIT 1000
但是给我一些结果需要1分钟…那太耗时了

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

需要帮忙吗

多谢各位

SELECT  RAND() AS 'my_rand', t.*
FROM table t 
GROUP_BY domain
ORDER BY my_rand LIMIT 1000
我不确定它到底有多随机,但它会在我的测试数据库中返回看似随机的结果


我不确定你能在一个简单的查询中做到这一点而不扫描所有的行。

你需要“真正的”随机性吗?如果不是,您可以分别在数组(或其他表)中生成随机数并获取块(例如,通过偏移量)。是的,每个查询都必须返回几乎不同的结果集,这可能有一些用处:。我同意他们的结论:除了SQL以外的任何东西都可能更有效。
代码格式……我不明白……哈哈