Mysql 如何从域中随机选择一个url-表:ID | url | domain-必须快速
我需要此表的快速查询: id | url |域 例如: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 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以外的任何东西都可能更有效。
代码格式……我不明白……哈哈