select id,
title
from posts
where id in (23,24,60,19,21,32,43,49,9,11,17,34,37,39,46,5
2,55)
이 계획을 설명해
mysql> explain select id,title from posts where id in (23,24,60,19,21,32,43,49,9,11,17,34,37,39,46,5
2,55);
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | posts | ALL | PRIMARY | NULL | NULL | NULL | 30 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.05 sec)
ID는 게시물 테이블의 기본 키입니다. 다른 인덱스를 추가 이외
기본 키의 명시 적 값을 선택하고 EXPLAIN이 다른 결과 (예 : 18 행 대신 30 행)를 예상한다는 사실은 아마도 optimzer가 상호 작용하는 방식 때문일 것이라고 생각합니다. 통계와. 아니면 내가 당신의 질문을 오해 했습니까? – davek
@Dave K 30 여기에서 쿼리를 처리하기 위해 MySQL이 읽어야하는 행 수는 결과 목록에서 예상되는 행 수가 아닙니다. 적은 수의 행 (모든 노드가 하나의 노드에 포함되거나 모든 비율이 포함될 수 있음) 만 필요하기 때문에 "검색"보다는 "검색"하는 것이 더 효율적입니다. – mjv
단일 ID를 검색하는 경우 계획 바보는 무엇을 좋아합니까? – Thorsten