MySQL Explain详解
2008-09-03 11:09:02 来源:WEB开发网(3). eq_ref
对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型。它用在一个索引的所有部分被联接使用并且索引是UNIQUE或PRIMARY KEY。
eq_ref可以用于使用= 操作符比较的带索引的列。比较值可以为常量或一个使用在该表前面所读取的表的列的表达式。
在下面的例子中,MySQL可以使用eq_ref联接来处理ref_tables:
select*FROMref_table,other_table
whereref_table.key_column=other_table.column;
select*FROMref_table,other_table
whereref_table.key_column_part1=other_table.column
ANDref_table.key_column_part2=1;
例如
mysql>createuniqueindexidx_t3_idont3(id);
QueryOK,1000rowsaffected(0.03sec)
Records:1000Duplicates:0Warnings:0
mysql>explainselect*fromt3,t4wheret3.id=t4.accountid;
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
|id|select_type|table|type|possible_keys|key|key_len|ref|rows|Extra|
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
|1|SIMPLE|t4|ALL|NULL|NULL|NULL|NULL|1000||
|1|SIMPLE|t3|eq_ref|PRIMARY,idx_t3_id|idx_t3_id|4|dbatest.t4.accountid|1||
+----+-------------+-------+--------+-------------------+-----------+---------+----------------------+------+-------+
(4).ref
更多精彩
赞助商链接