2012-09-15 2 views
0

MySQL은 quicksort을 사용하여 사용자가 요청할 때 결과 세트를 정렬합니다. 이제 평균적으로 quicksortO(Nlog N)의 효율성을 가지며, 최악의 경우는 O(N^2)에 도달 할 수도 있습니다. 이제는 대부분의 경우에 문제가 없지만 항상 6이라는 숫자를 가진 열이 있다고 상상해보십시오. 그리고 특정 쿼리는 수백만 개의 행을 가져 와서 해당 키를 기준으로 정렬합니다. 이러한 경우 radix-sort은 선형 순서를 사용하는 것이 더 좋지 않을까요? (플러그인 또는 뭔가 작성하는 등의) 방법이 있습니까? 새로운 MySQL 함수, 예를 들어 내가 정의한 사용자 정의 기수를 통해 주어진 키를 기반으로 결과 집합을 정렬하는 myorderby을 소개 할 수 있습니까? 그리고 둘째,이 비꼬는 가치가 있습니까?MySQL에서 사용자 정의 정렬 기능 사용

답변

1

MySQL 소스를 정렬하고 자신의 정렬 기능을 삽입하십시오. 실제로 더 빠르면 commu에 커밋 할 수도 있습니다 nity.

그만한 가치가있는 경우 필요한 노력의 양에 따라 다릅니다. 이러한 수정 작업을 통해 MySQL을 실행하는 것은 상당한 일이라고 생각합니다. 쉽게 업데이트 할 수 있기를 원할 것입니다. 따라서 속도 향상이 정말로 필요하거나 향후 버전의 정렬을 기본값으로 설정할 수있는 경우가 아니면 그만한 가치는 없다고 생각합니다. 병목 현상을 분류 한 적이 한번도 없었습니다.

+0

나는 많이 추측했다. 소스 코드를 어디에서 어떻게 얻을 수 있는지에 대한 아이디어가 있습니까? 해커가 코드를 더 쉽게 이해할 수 있도록하기 위해 첨부 된 문서가 있습니까? – SexyBeast

+0

문서는 다음 위치에 있습니다. http://dev.mysql.com/doc/refman/5.1/en/source-installation.html 나는 소스에서 MySQL을 설치 한 적이 없으며, 심지어 엿 들었습니다. 그래서 정말 얼마나 어려운지 말할 수 없습니다 그것을 수정하는 것이 될 것입니다. – GolezTrol