매우 간단한 SQL where 문이 있습니다.
SELECT `genre_application`.`genre_id`
FROM `genre_application`
WHERE `genre_application`.`application_id` = 310633997
열에 인덱스가 있어도 약 2 초가 걸립니다.
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "2098202.80"
},
"table": {
"table_name": "genre_application",
"access_type": "index",
"key": "PRIMARY",
"used_key_parts": [
"genre_id",
"application_id"
],
"key_length": "8",
"rows_examined_per_scan": 10363019,
"rows_produced_per_join": 1036301,
"filtered": "10.00",
"using_index": true,
"cost_info": {
"read_cost": "1890942.42",
"eval_cost": "207260.38",
"prefix_cost": "2098202.80",
"data_read_per_join": "23M"
},
"used_columns": [
"genre_id",
"application_id"
],
"attached_condition": "(`genre_application`.`application_id` = 310633997)"
}
}
실행 시간을 어떻게 개선 할 수 있습니까?
이것은 귀하의 쿼리입니다.
SELECT ga.`genre_id`
FROM `genre_application` ga
WHERE ga.`application_id` = 310633997
인덱스 application_id
의 첫 번째 키인 인덱스가 필요합니다 . 가장 좋은 색인은에 대한 복합 색인입니다 genre_application(application_id, genre_id)
. 인덱스의 키 순서가 중요합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다