단지 랜드()를 사용하는 것보다 더 빨리 가입 사용하는 방법어떻게 MySQL의
SELECT * FROM `table` ORDER BY RAND() LIMIT 1
실제로 문제가 먼저 이해하는 데 비해
SELECT t.id
FROM table t
JOIN (SELECT(FLOOR(max(id) * rand())) AS maxid FROM table)
AS tt
ON t.id >= tt.maxid
LIMIT 1
빠릅니다. 어쩌면 내가 왜 다른 사람보다 더 빠른 사람인지 알면 더 나은 이해를 얻을 수있을 것입니다. 기본적으로
* 원래 당신은 쿼리에 EXPLAIN 사용할 수 있습니다 Difficult MySQL self-join please explain
감사합니다! (MySQL 명령의 시간 비용을 요약 한 부분을 알 수 있습니까?) – whamsicore
나는 그 정보가 가능하다고 생각하지 않습니다. "EXPLAIN"명령 및 구문을 확인하십시오. 명령 비용은 시스템이 점검해야하는 정도에 따라 다릅니다. 색인을 얻은 경우에는 빠릅니다. 전체 표 스캔을 수행해야하는 경우 느립니다. 먼저 인덱스, 조인 (인덱스 포함) 및 하위 쿼리/임시 테이블을 읽습니다. 그런 다음 test-db와 EXPLAIN 명령으로 놀아 라. – Nanne