MySQL EXPLAIN은 쿼리 실행 계획을 제공합니다. EXPLAIN은 SELECT, INSERT, DELETE, REPLACE 및 UPDATE와 함께 처음에 사용할 수 있습니다.
데이터베이스에서 전체 테이블 스캔을 방지하려면 인덱스를 사용해야 합니다. 먼저 테이블을 생성하겠습니다 -
mysql> create table DemoTable1488 -> ( -> StudentId int, -> StudentName varchar(20), -> StudentAge int -> ); Query OK, 0 rows affected (2.18 sec)
다음은 인덱스를 생성하는 쿼리입니다 -
mysql> create index student_id_index on DemoTable1488(StudentId); Query OK, 0 rows affected (0.90 sec) Records: 0 Duplicates: 0 Warnings: 0
DemoTable1488 값에 삽입 삽입 명령을 사용하여 테이블의 일부 레코드 삽입 -
mysql> insert into DemoTable1488 values(101,'Sam',21); Query OK, 1 row affected (0.32 sec) mysql> insert into DemoTable1488 values(102,'Bob',23); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable1488 values(103,'David',20); Query OK, 1 row affected (0.21 sec)
select 문을 사용하여 테이블의 모든 레코드 표시 -
mysql> select * from DemoTable1488;
이것은 다음과 같은 출력을 생성합니다 -
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 101 | Sam | 21 | | 102 | Bob | 23 | | 103 | David | 20 | +-----------+-------------+------------+ 3 rows in set (0.00 sec)
이제 EXPLAIN을 사용하십시오 -
mysql> explain select * from DemoTable1488 where StudentId=1;)
이것은 다음과 같은 출력을 생성합니다 -
+----+-------------+---------------+------------+------+------------------+------------------+---------+-------+------+----------+-------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+---------------+------------+------+------------------+------------------+---------+-------+------+----------+-------+ | 1 | SIMPLE | DemoTable1488 | NULL | ref | student_id_index | student_id_index | 5 | const | 1 | 100.00 | NULL | +----+-------------+---------------+------------+------+------------------+------------------+---------+-------+------+----------+-------+ 1 row in set, 1 warning (0.00 sec)