쿼리 후 랜덤 화 된 행을 갖고 싶지만 order by rand()
을 사용하면 120k + 행을 가진 테이블이 고갈되고 있습니다. 난 그냥 행 번호를 출력하지만 그것은 임의의 인덱스에서 시작한 다음 그 다음 #number 행을 반환하는 작은 솔루션을 발견했다. 이것은 꽤 빠르지 만 이것은 임의의 인덱스 뒤에 몇 개의 행을 반환합니다. 코드는 같이 간다 :mysql 무작위 결과 및 최적화
SELECT *
FROM lieky AS r1 JOIN
(SELECT (RAND() *
(SELECT MAX(col_0)
FROM lieky)) AS id)
AS r2
WHERE r1.col_0 >= r2.id
ORDER BY r1.col_0 ASC
LIMIT 100
와 나는 여기에서 그것을 발견 : 나에게 도움이 될 일이 http://jan.kneschke.de/projects/mysql/order-by-rand/
있습니까?
랜덤 화 된 데이터를 페이지 매김으로 가져 오려고하므로 사용자가 데이터베이스를 쿼리 할 때 항상 임의의 순서로 행을 가져옵니다. 도움 주셔서 감사합니다.
물론 그럴 가능성도 있지만 클릭 할 때마다 작성하는 것이 좋습니다. 고맙습니다 – kalafun