2011-02-19 4 views
3

MySQL 테이블의 인덱스를 다시 정렬 할 수 있습니까? 저는 약 20 개의 인덱스가있는 큰 테이블을 가지고 있지만, 몇 년 동안 만들었으므로 논리적으로 더 이상 주문하지 않습니다. 나는 그들이 테이블의 열과 같은 순서를 가지길 원합니다. Navicat를 사용하지만 목록에서 색인을 위나 아래로 이동하는 옵션이 표시되지 않습니다. 심지어 가능할까요?MySQL - 테이블의 인덱스 순서를 재정렬 하시겠습니까?

업데이트 : 방금 전 PostgreSQL에서 열 순서를 변경할 수 없다는 것을 알았습니다. 그리고 전망을 사용해야 만하는 모든 사람들에게는 열 순서가 중요하지 않습니다. 물론 그렇습니다! 열과 인덱스는 논리적으로이어야하며 디자인 인터페이스에서 주문해야합니다. 대부분의 사람들은 GUI를 사용하여 요즘 테이블을 편집합니다!

저는 이처럼 기본적인 것이 구현되지 않았다고 믿을 수 없습니다. 2011 년입니다.

+0

20 개의 인덱스가 있습니까? 당신은 정말로 그것을 모두 필요로합니까? 모든 삽입, 삭제 및 업데이트는 이제 21 개 장소에 기록해야합니다. 이것은 자유롭지 않으며, 어떤 가치를 얻지 못하는 색인은 삭제해야합니다. – btilly

+0

다른 테이블을 참조하는 조회 ID가 많은 복잡한 쿼리가 있습니다 ... 그리고 다른 WHERE 문이 많기 때문에 해당 인덱스가 필요합니다 ... – Dylan

+0

얼마나 오랫동안 데이터베이스를 다루고 있습니까? 열이나 인덱스를 "재주문"할 수는 없습니다. 각 레코드와 해당 인덱스는 특정 논리적 순서로 페이지에 기록됩니다. 각 항목에 대해 열 헤더 정보를 쓰지 않습니다. 10 기가 바이트 테이블에있는 테이블에서 열을 재 배열하려고 시도하십시오 큰 소매 볼륨을하는 기업이나 다른 사업을 위해 더 크지 않다면 ... 당신은 시각적으로 "매력적"이기 위해서 당신 자신의 사업을 막을 것입니다 – DRapp

답변

1

색인의 목록 순서를 변경할 수 없습니다. MySQL 내에서 내부적으로 문제가되지는 않지만 주문을 변경하려면 필요에 따라 삭제하고 다시 만드는 것이 유일한 방법입니다.

인덱스가 너무 많아서 @btilly가 말하는 것처럼 최선의 아이디어가 아닐 수도 있습니다. 나는 당신이 가지고있는 데이터 나 인덱스 된 액세스를 필요로하는 데이터 액세스 패턴을 알지 못한다.하지만 그것은 많이 들린다. OTOH, 정확히 맞을 수도 있습니다. DB에 액세스 할 수있는 사람 만 프로파일 링을 수행합니다.