我的数据库中有大量域列表,位于“网站”列下的“列表”表中。
大约有 1.4 亿行,我只需要知道如何回显随机行。
基本上是这样的:
<?php include('directory/database.php'); ?>
WHATEVER CODE WORKS FOR GETTING A RANDOM DOMAIN FROM THE DATABASE
<?php
echo $domain;
?>
只有大量的记录,所以我需要知道随机选择其中一个并显示在页面上的最快方法。谢谢!
我的数据库中有大量域列表,位于“网站”列下的“列表”表中。
大约有 1.4 亿行,我只需要知道如何回显随机行。
基本上是这样的:
<?php include('directory/database.php'); ?>
WHATEVER CODE WORKS FOR GETTING A RANDOM DOMAIN FROM THE DATABASE
<?php
echo $domain;
?>
只有大量的记录,所以我需要知道随机选择其中一个并显示在页面上的最快方法。谢谢!
你绝对不想使用ORDER BY RAND()
. MySQL 必须建立一个临时表。如果你的表有一个唯一的 id 列,这样的事情会更好:
SELECT * FROM `table`
WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` )
ORDER BY id LIMIT 1;
有关在 php 中运行良好的其他方法,请参阅此博客文章。
注意:这只是重复了我在这个线程上的回答。