高性能地从数据库随机取一条数据"/>
高性能地从数据库随机取一条数据
原理
- 利用主键ID索引的特性,通过最大的ID乘以一个随机数得到一个随机的ID;
- 将随机的ID作为临时表;
- 将原表和临时表利用主键ID关联;
- 利用主键ID排序,只取一条数据。
示例SQL
SELECTt3.*
FROM(SELECTt1.*FROM table t1 INNER JOIN(SELECT ROUND(RAND() * (SELECT MAX(id) FROM table)) id) t2 ON t1.id >= t2.idORDER BY t1.id ASC LIMIT 0,1) t3
更多推荐
高性能地从数据库随机取一条数据
发布评论