2009-09-13 8 views
1

MySql 데이터베이스 "orkut"에 다양한 레코드를 저장했습니다. 이제 Java 프로그램을 통해 해당 데이터베이스를 정렬하려고합니다. jdbc 드라이버를 통해 데이터베이스에 연결했습니다. 이제 "int"유형의 필드 "number"가 감소하는 순서로 해당 데이터베이스를 정렬하려고하지만 명령을 알지 못합니다. 나는 "con"참조 변수가있다. 이것은 MySql 데이터베이스에 대한 연결을 나타낸다.MySql 데이터베이스를 정렬하는 방법?

한 가지 더, 일련 번호를 나타내는 "sr_no"필드가 있습니다. 레코드의 첫 번째 키가 아닙니다.

이 필드는 데이터베이스를 일련 번호로 정렬 한 후에 변경되지 않습니다. 레코드 순서 변경시 변경해서는 안됩니다.

이 정렬을 동일한 데이터베이스에 영구 저장하고 싶습니다. 나는 결과 집합을 정렬 싶지 않아요. 정렬 된 데이터베이스가 필요합니다.

+0

BTW '데이터베이스'라고하는 것은 실제라는 테이블입니다. 데이터베이스는 테이블 세트입니다. 이전에 DBase III DBF로 작업 했습니까? :) –

답변

7

자바를 통해 이것을 분류하려고하지 마십시오. 스스로를 죽일 것입니다. SQL에는 정확하게 이것을 수행하는 order by 절이 있습니다. SQL은 다음과 같습니다.

select 
    number, 
    sr_no 
from 
    tbl 
order by 
    number desc 

또한 영구적으로 정렬 된 데이터베이스를 가질 수 없습니다. 데이터가 저장되는 방식은 사용자가 선택한 순서대로 저장되지 않습니다. 은 쿼리에 order by을 사용하지 않는 한 데이터베이스의 순서를 동일하게 계산해야합니다.

+1

+1 "너 자신을 죽일거야"-이 사람의 말을 들어라. –

+0

+1 - 멋진 답변입니다. – duffymo

1

에릭이 영구적으로 정렬 된 데이터베이스를 가질 수 없다고 말했습니다. 그러나 대규모 데이터 세트에서이 쿼리를 매우 자주 실행하려면 다양한 데이터베이스에서 지원되는 인덱싱을 수행 할 수 있습니다.

특정 키에 대한 검색 및 정렬 속도가 빨라집니다.

+0

예, 매우 큰 데이터 세트에 대해이 작업을 수행해야합니다. 수백만 개의 레코드가 포함되어 있습니다. MySQL 인덱싱을 사용하여이 작업을 수행하는 방법을 설명해 주시겠습니까? MySQL을 사용하고 있습니다. 나는 이것을 위해 당신을 상향 투표했습니다. –

+0

은 당신이 테이블에 대한 인덱스를 작성해야하고 사용을 정렬하는 것은 수 내림차순으로 위해 TBL 에서 sr_no 번호, 를 선택 동안 –

관련 문제