Facebook과 같은 뉴스 티커 애플리케이션의 경우 스크롤하면 더 오래된 뉴스가 표시됩니다. 이제는 뉴스가 테이블에 삽입 될 것이므로 일반 선택은 항상 이전 레코드를 검색하는 반면, 여기에서는 역순으로 검색합니다. 나는 그것이 끝나는 방식으로 사용자가 끝까지 스크롤 할 때 FB가 현재 티커에있는 마지막 뉴스 ID의 ID를 가진 Ajax 요청을 보낸다고 가정합니다 (Firebug에서 확실히 식별 할 수 없었고, FB는로드를 보냈습니다 PHP는 DB를 쿼리하고 시간 열에 따라 결과 집합을 뒤집은 다음 수신 된 ID가있는 레코드 다음에 오는 5 개의 레코드를 추출합니다. 이제 그러한 테이블은 거대합니다. 따라서 테이블을 자주 넘겨 주면 확실히 DB에 많은 피해를 입 힙니다. 따라서 뒤집기없이 이것을 달성 할 수있는 방법이 있습니까?역순으로 레코드를 검색하는 방법은 무엇입니까?
답변
쿼리에 ORDER BY 변수를 지정하지 않으면 MySQL은 삽입 순서대로 레코드를 반환하지 않을 수 있습니다. 자세한 내용은 this answer을 참조하십시오. 가장 최근의 행을 가져 오려면 삽입 시간 열이 있어야하며 정렬이 필요합니다.
당신이 time desc
에 정렬하는 경우, 당신은 처음 5 개 기록을 요청하기 위해 보통 LIMIT 절을 사용할 수 있습니다 (즉, 가장 최근의 5 등), 또는 특정 ID 이후 가장 최근의 5,
오, 나는 몰랐다. 나는 MySQL이 항상 삽입 된 순서대로 행을 리턴한다고 생각했다. 물론 다른 컬럼의 클러스터 된 인덱스가 그렇지 않은 경우는 예외였다. – SexyBeast
+1. @Cupidvogel : MySQL은'ORDER BY' 절에 명시된 순서를 제외하고는 특정 순서로 행을 반환한다는 보장은 전혀 없습니다. – spencer7593
예, 매우 추상적으로 말하고 있습니다. 인덱스 된 컬렉션에 역순으로 액세스하려는 경우.
$collection = array(); // Filled through request to server
....
for ($i = sizeof($collection)-1; $i >= 0; $i--) {
echo $collection[$i]
.... // execute some action based on access to
}
즉, 마지막 색인에서 배열에 액세스 할 수있는 이유가 없습니다.
가장 오래된 것을 먼저 얻으려면 SQL 문에 order by
을 지정하십시오. 그리고 last_id
- 1. RoR에서 레코드를 검색하는 방법은 무엇입니까?
- 2. 관련 테이블에서 모든 레코드를 검색하는 방법은 무엇입니까?
- 3. Linq 단일 레코드를 검색하는 가장 빠른 방법은
- 4. 해당 레코드에있는 문자열의 여러 비트를 기반으로 레코드를 검색하는 방법은 무엇입니까?
- 5. ORMLITE에서 레코드를 검색하는 방법은 무엇입니까? 내 앞의 질문과 마찬가지로
- 6. 테이블에 yesteraday 삽입 된 레코드를 검색하는 방법은 무엇입니까?
- 7. 다른 테이블에 참조가없는 레코드를 모두 검색하는 방법은 무엇입니까?
- 8. WCF RIA Services에서 단일 레코드를 검색하는 방법은 무엇입니까?
- 9. LinqToSQL에서 테이블을 검색하는 방법은 무엇입니까?
- 10. XML 콘텐츠를 역순으로 삽입하는 방법은 무엇입니까?
- 11. PHP에서 역순으로 값을 정렬하는 방법은 무엇입니까?
- 12. 자바 : 수레 배열을 역순으로 정렬하는 방법은 무엇입니까?
- 13. 첫 번째 1000 개의 레코드를 검색 한 후 다음 1000 번째 레코드를 검색하는 방법은 무엇입니까?
- 14. 레코드를 업데이트하는 방법은 무엇입니까?
- 15. 사용중인보기를 검색하는 방법은 무엇입니까?
- 16. listbox에서 검색하는 방법은 무엇입니까?
- 17. gridview.columns 검색하는 방법은 무엇입니까?
- 18. 멀티 맵을 역순으로 검색
- 19. 역순으로 행 읽기
- 20. 레코드를 열로 표시하는 방법은 무엇입니까?
- 21. 데이터베이스에서 레코드를 계산하는 방법은 무엇입니까?
- 22. 파일에서 레코드를 제거하는 방법은 무엇입니까?
- 23. GtkEventBox에서 GtkWindow를 검색하는 방법은 무엇입니까?
- 24. 벡터에서 요소를 검색하는 방법은 무엇입니까?
- 25. 'attr_accessor'속성 이름을 검색하는 방법은 무엇입니까?
- 26. Wordpress에서 제목으로 검색하는 방법은 무엇입니까?
- 27. CURL.exe에서 데이터를 검색하는 방법은 무엇입니까?
- 28. JSON을 통해 검색하는 방법은 무엇입니까?
- 29. 현재 요일을 검색하는 방법은 무엇입니까?
- 30. 내부 클래스를 검색하는 방법은 무엇입니까?
내가 시간을 정렬하는 것은 갈 길이라고 생각합니다. mysql을 사용하여 원래 삽입 시간 순서대로 레코드를 항상 반환 할 수 있는지 여부는 확실하지 않습니다. 또한, mysql을 사용하면 결과를 정렬하는 것이 PHP를 처리하는 것보다 훨씬 빠르지 만 벤치 마크를 통해 쉽게 찾을 수 있다고 생각합니다. – octern
DB에서 주어진 레코드 ID 앞에 5 개의 레코드를 추출한 다음, 시간을 기준으로 내림차순으로 정렬합니까? – JAB
** 주어진 행 ID **가있는 레코드보다 먼저 DB에 5 개의 레코드를 추출하는 방법은 무엇입니까? – SexyBeast