내 쿼리 및 설명 출력은 다음과 같습니다.전체 키를 사용하지 않는 이유는 무엇입니까?
describe ENSEMBL_DERIVED
--------------
+-------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| SEQ_REGION_ID | int(10) unsigned | NO | PRI | 0 | |
| SEQ_REGION_START | int(10) unsigned | NO | PRI | 0 | |
| SEQ_REGION_END | int(10) unsigned | NO | PRI | 0 | |
| SEQ_REGION_STRAND | tinyint(2) | YES | | NULL | |
| STABLE_ID | varchar(128) | YES | | NULL | |
| DISPLAY_LABEL | varchar(128) | YES | MUL | NULL | |
+-------------------+------------------+------+-----+---------+-------+
있는 key_len 필드 설명 문에 기본 키의 2 3 중 열이 사용되고 있음을 나타냅니다 :
explain select * from ENSEMBL_DERIVED where
SEQ_REGION_ID=27523 AND SEQ_REGION_START >= 12595527 AND SEQ_REGION_END <= 43811979
--------------
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: ENSEMBL_DERIVED
type: range
possible_keys: PRIMARY
key: PRIMARY
key_len: 8
ref: NULL
rows: 2004
Extra: Using where
1 row in set (0.00 sec)
그리고 여기에 테이블입니다. 왜 이런거야? > = 및 < = 연산자가 두 개의 서로 다른 열에있는 증상입니까?
쿼리 + 테이블을 최적화하는 방법이 있습니까? 제 생각에 "2004 행의 어디에서 사용하는 것이 이상적이지 않을 수 있습니다.
도 제공 할 수 있습니다. SHOW CREATE TABLE ENSEMBL_DERIVED; please – fabien
이 쿼리는 느리게 실행됩니까? – Namphibian