2012-01-25 3 views
1

제 질문은 색인 및 기본 키에 관한 것입니다.색인 및 기본 키

의 우리가 있다고 가정하자이 같은 테이블 :

select * from demo_table where to="" and media="" order by id desc limit 0,1; 

과 :

demo_table 

| id     | int(11)  | NO | PRI |   | 
| subject    | varchar(255) | YES |  | NULL | 
| body     | text   | YES |  | NULL | 
| to     | varchar(255) | YES | MUL | NULL | 
| from     | varchar(255) | YES | MUL | NULL | 
| media    | varchar(255) | YES |  | NULL | 

나는/'미디어'부부 '에서'특정의 마지막 행을 찾습니다 쿼리가 내 테이블에 대한 색인을 만들고 싶습니다. 나는이 같은 인덱스를 만들어야합니다

CREATE INDEX to_media on demo_table(id,media,to); 

는 ID가 정렬됨을보고 :
CREATE INDEX to_media on demo_table(media,to); 

또는 같은

?

+0

문제는 무엇이며 귀하의 질문은 무엇인가? – pltvs

+1

MyISAM 또는 InnoDB 테이블입니까? InnoDB에서는, 비록 그것을 지정하지 않더라도, PK는 항상 인덱스의 첫 번째 컬럼이다. – Mchl

+0

널 (null)을 허용하는 많은 열을주의해야합니다. 인덱싱 VARCHAR (255) 열은 반드시 좋은 생각은 아닙니다 (항상 나쁜 생각은 아닙니다). 쿼리 최적화 프로그램에서 사용하는 3 부분 인덱스를 얻을 수 있습니까? 나는 너를 확신하지 않는다. 두 부분으로 구성된 인덱스를 사용할 수도 있지만, 인덱스를 사용하여 인덱스의 존재를 보증 할 수 있는지 여부는 확실하지 않습니다. –

답변

0
CREATE INDEX to_media on demo_table(id,media,to); 
+0

그것은 무덤 테이블입니다. 내 문제는 내가 질문에서 제안한 두 가지 유형의 인덱스 사이에 차이점이 있는지를 아는 것입니다. 참고하시기 바랍니다 : 제 경우에는 검사 할> 100000 행과 같습니다. –

+0

그것의 요구 사항에 따라 달라집니다 ... 큰 규모와 더 많은 삽입/업데이트 성명서가 Innodb를 위해 다른 현명한 이동 MYSAM – Madhu