제 질문은 색인 및 기본 키에 관한 것입니다.색인 및 기본 키
의 우리가 있다고 가정하자이 같은 테이블 :
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);
또는 같은
?
문제는 무엇이며 귀하의 질문은 무엇인가? – pltvs
MyISAM 또는 InnoDB 테이블입니까? InnoDB에서는, 비록 그것을 지정하지 않더라도, PK는 항상 인덱스의 첫 번째 컬럼이다. – Mchl
널 (null)을 허용하는 많은 열을주의해야합니다. 인덱싱 VARCHAR (255) 열은 반드시 좋은 생각은 아닙니다 (항상 나쁜 생각은 아닙니다). 쿼리 최적화 프로그램에서 사용하는 3 부분 인덱스를 얻을 수 있습니까? 나는 너를 확신하지 않는다. 두 부분으로 구성된 인덱스를 사용할 수도 있지만, 인덱스를 사용하여 인덱스의 존재를 보증 할 수 있는지 여부는 확실하지 않습니다. –