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

发布于 2024-12-19 11:01:22 字数 865 浏览 0 评论 0原文

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

id|url|domain

示例:

   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唯一的随机网址,其中没有重复的域...

我尝试了类似的方法:

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

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

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

需要一些帮助

,谢谢

I need a fast query for this table:

id|url|domain

example:

   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

The table contains 1 millions rows...so a query should return a respond very fast..

for example i like to get 1000 unique random urls without having duplicate domains in it....

i tried something like:

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

but it takes 1 minute to gave me some results...thats too time consuming

table structure is myisam, but could be converted to anything else if i got faster results

need some help

thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冧九 2024-12-26 11:01:22
SELECT  RAND() AS 'my_rand', t.*
FROM table t 
GROUP_BY domain
ORDER BY my_rand LIMIT 1000

我不确定这有多真实随机,但它在我的测试数据库中返回看似随机的结果。

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

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

I'm not sure how truly random that is, but it returns seemingly random results in my test database.

I'm not sure you can do this in a simple query without scanning all of the rows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文