Mysql两表关联不使用索引的问题

两张表test_a,test_b结构和索引信息如下,通过主键inner join关联时,外表为什么不走索引呢?

create table test_a (

id int,

birthday date not null,

comment varchar (50) not null,

primary key test_a_pk (id),

index test_a_index (birthday)

) engine = innodb default charset = utf8;

create table test_b (

id int,

salary double not null,

struct varchar (50) not null,

primary key test_b_pk (id),

index test_b_index (salary)

) engine = innodb default charset = utf8;

mysql> show index from test_a\G

*************************** 1. row ***************************

Table: test_a

Non_unique: 0

Key_name: PRIMARY

Seq_in_index: 1

Column_name: id

Collation: A

Cardinality: 5375084

Sub_part: NULL

Packed: NULL

Null:

Index_type: BTREE

Comment:

Index_comment:

*************************** 2. row ***************************

Table: test_a

Non_unique: 1

Key_name: test_a_index

Seq_in_index: 1

Column_name: birthday

Collation: A

Cardinality: 2728

Sub_part: NULL

Packed: NULL

Null:

Index_type: BTREE

Comment:

Index_comment:

2 rows in set (0.00 sec)

mysql> show index from test_b\G

*************************** 1. row ***************************

Table: test_b

Non_unique: 0

Key_name: PRIMARY

Seq_in_index: 1

Column_name: id

Collation: A

Cardinality: 5291561

Sub_part: NULL

Packed: NULL

Null:

Index_type: BTREE

Comment:

Index_comment:

*************************** 2. row ***************************

Table: test_b

Non_unique: 1

Key_name: test_b_index

Seq_in_index: 1

Column_name: salary

Collation: A

Cardinality: 943640

Sub_part: NULL

Packed: NULL

Null:

Index_type: BTREE

Comment:

Index_comment:

2 rows in set (0.00 sec)

Mysql两表关联不使用索引的问题

回答

“EQ_REF”就表示已经使用了主键索引了吧,建议做个实验,连接的另一个非主键id试试速度是否差不多。

以上是 Mysql两表关联不使用索引的问题 的全部内容, 来源链接: utcz.com/a/64977.html

回到顶部