我有几个关于MySQL解释的问题。
All rows with matching index values are read from this table for each combination of rows from the previous tables.
这是什么?如果是最初的步骤,怎么会有一个上一个表?Using where?
中声明Using Index
?它特别声明它通过查看KEY column : SE
S.E
上的指数mysql> Create index SE on S(E);
Query OK, 0 rows affected (1.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> explain SELECT COUNT(R.RID) FROM R, S WHERE R.RID=S.RID AND R.B=5 AND S.E=5;
+----+-------------+-------+--------+---------------+---------+---------+----------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+---------+---------+----------------+------+-------------+
| 1 | SIMPLE | S | ref | RID,SE | SE | 5 | const | 6 | Using where |
| 1 | SIMPLE | R | eq_ref | PRIMARY | PRIMARY | 4 | project2.S.RID | 1 | Using where |
+----+-------------+-------+--------+---------------+---------+---------+----------------+------+-------------+
DATASET
表R有100,000行以及以下字段:
表S有500,000行和以下字段:
查询
SELECT COUNT(R.RID) FROM R, S WHERE R.RID=S.RID AND R.B=5 AND S.E=5;
答案 0 :(得分:2)
此查询也可以像这样重写:
SELECT COUNT(R.RID) FROM R, S WHERE R.RID=S.RID AND R.B=5 AND S.E=5;
to
SELECT COUNT(R.RID)
FROM R
INNER JOIN S ON R.RID=S.RID
WHERE R.B=5 AND S.E=5;
<强> 1。什么是上表
ref
eq_ref
和inner join
的{{3}}上的措辞可能会有些混乱。这里有两张桌子。每一个都引用另一个作为上一个表(这是我的解释)。这里的连接是eq_ref
,因此数据库将所有R记录与S匹配,并且只考虑那些RID匹配时适合审阅的记录。
当文档引用ref
和SELECT * FROM ref_table,other_table
WHERE ref_table.key_column=other_table.column;
的相同示例时,也会出现混淆:
eq_ref
总的来说,当解释提到ref和eq_ref时,我会查看相应的表以查看它们所处的连接类型。ref
查看PRIMARY或UNIQUE键。 key
可能正在使用PRIMARY / UNIQUE之外的索引。
<强> 2。使用
使用where实际上使用的是explain
输出的where ... S.E = 5
列所指示的索引。索引用于满足using index
,然后用于查找表中的数据。
如果索引覆盖并且表格中的数据不需要查找,您可以看到using index; using where
(如果没有使用条件)或where ... S.E = 5
(如果在哪里)使用条件)
此信息与http://dev.mysql.com/doc/refman/5.7/en/explain-output.html
相同第3。事件顺序
我的理解是:
array1 = [{model: 1995}, {type: "automatic"}]
array2 = [{model: 2002}, {type: "automatic"}]
array3 = [{model: 1995}, {type: "automatic"}]
array4 = [{model: 2002}, {type: "automatic"}]
。