1、查看表结构
mysql> show create table emp\G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Table: emp
Create Table: CREATE TABLE `emp` (
`empno`
int
(
4
) NOT NULL DEFAULT
'0'
,
`ENAME` varchar(
10
) DEFAULT NULL,
`JOB` varchar(
9
) DEFAULT NULL,
`MGR`
int
(
4
) DEFAULT NULL,
`HIRE` date DEFAULT NULL,
`SAL`
int
(
7
) DEFAULT NULL,
`COMM`
int
(
7
) DEFAULT NULL,
`deptno`
int
(
2
) DEFAULT NULL,
PRIMARY KEY (`empno`),
KEY `deptno` (`deptno`),
CONSTRAINT `emp_ibfk_1` FOREIGN KEY (`deptno`) REFERENCES `dept` (`deptNO`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1
row in set (
0.00
sec)
|
---在此表中empno 为主键,在deptno上建有索引
mysql> select * from emp;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
+-------+--------+-----------+------+------------+------+------+--------+
| empno | ENAME | JOB | MGR | HIRE | SAL | COMM | deptno |
+-------+--------+-----------+------+------------+------+------+--------+
|
7369
| SMITH | CLERK |
7902
|
1980
-12
-17
|
800
| NULL |
20
|
|
7499
| ALLEN | SALESMAN |
7698
|
1981
-02
-20
|
1600
|
300
|
30
|
|
7521
| WARD | SALESMAN |
7698
|
1981
-02
-22
|
1250
|
500
|
30
|
|
7566
| JONES | MANAGER |
7839
|
1981
-04
-02
|
2975
| NULL |
20
|
|
7654
| MARTIN | SALESMAN |
7698
|
1981
-09
-28
|
1250
|
1400
|
30
|
|
7698
| BLAKE | MANAGER |
7839
|
1981
-05
-01
|
2850
| NULL |
30
|
|
7782
| CLARK | MANAGER |
7839
|
1981
-06
-09
|
2450
| NULL |
10
|
|
7788
| SCOTT | ANALYST |
7566
|
1987
-07
-13
|
3000
| NULL |
10
|
|
7839
| KING | PRESIDENT | NULL |
1981
-11
-17
|
5000
| NULL |
10
|
|
7844
| TURNER | SALESMAN |
7698
|
1981
-09
-08
|
1500
|
0
|
30
|
|
7876
| ADAMS | CLERK |
7788
|
1987
-06
-13
|
1100
| NULL |
20
|
|
7900
| JAMES | CLERK |
7698
|
1981
-12
-03
|
950
| NULL |
30
|
|
7902
| FORD | ANALYST |
7566
|
1981
-12
-03
|
3000
| NULL |
20
|
|
7934
| MILLER | CLERK |
7782
|
1982
-01
-23
|
1300
| NULL |
10
|
+-------+--------+-----------+------+------------+------+------+--------+
14
rows
in
set (
0.00
sec)
|
1)全表扫描查询
mysql> explain select * from emp \G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
|
id:
1
select_type: SIMPLE
table: emp
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows:
14
Extra: NULL
1
row
in
set (
0.00
sec)
|
2、通过主键查询
mysql> explain select * from emp where empno=7788\G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
|
id:
1
select_type: SIMPLE
table: emp
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len:
4
ref: const
rows:
1
Extra: NULL
1
row
in
set (
0.02
sec)
|
3)忽略主键索引
mysql> explain select * from emp ignore index(pri) where empno=7788\G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
|
id:
1
select_type: SIMPLE
table: emp
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows:
14
Extra: Using
where
1
row
in
set (
0.00
sec)
|
4)强制使用主键
mysql> explain select * from emp force index(pri) where empno=7788\G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
|
id:
1
select_type: SIMPLE
table: emp
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len:
4
ref: const
rows:
1
Extra: NULL
1
row
in
set (
0.00
sec)
|
5)通过索引deptno查询
mysql> explain select * from emp where deptno=10\G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
|
id:
1
select_type: SIMPLE
table: emp
type: ref
possible_keys: deptno
key: deptno
key_len:
5
ref: const
rows:
4
Extra: NULL
1
row
in
set (
0.00
sec)
|
6)忽略索引的使用
mysql> explain select * from emp ignore index(deptno) where deptno=10\G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
|
id:
1
select_type: SIMPLE
table: emp
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows:
14
Extra: Using where
1
row in set (
0.00
sec)
|
7)强制使用索引
mysql> explain select * from emp force index (deptno) where deptno=10\G
*************************** 1. row ***************************
1
2
3
4
5
6
7
8
9
10
11
|
id:
1
select_type: SIMPLE
table: emp
type: ref
possible_keys: deptno
key: deptno
key_len:
5
ref: const
rows:
4
Extra: NULL
1
row
in
set (
0.00
sec)
|