1
我正在尝试使用EXPLAIN优化我的MySQL查询。这里是一个非常简单地查询的示例:使用EXPLAIN优化MySQL查询
SELECT ID, Date, SenderID, Message FROM messages WHERE ReceiverID = '1000' ORDER BY ID DESC LIMIT 25;
当我观看解释它示出了:
+----+-------------+-----------+------+---------------+------------+---------+-------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+------+---------------+------------+---------+-------+------+-----------------------------+
| 1 | SIMPLE | messages | ref | ReceiverID | ReceiverID | 5 | const | 34 | Using where; Using filesort |
+----+-------------+-----------+------+---------------+------------+---------+-------+------+-----------------------------+
结果数是。我创建了一个索引ReceiverID,所以我不明白为什么'行'在说明是显示?我也不知道为什么它使用filesort。这个查询不是非常缓慢,但其他查询结果较大,趋于缓慢,'行'的数字似乎几乎是我期望它的两倍...
它可能是非常简单的东西,但我必须失踪什么?
嗨大卫,谢谢你的建议。我认为有ID作为主键会这样做,但我想我需要在相同的索引中有ReceiveID和ID。更大的担忧是它必须检查的行数。似乎太多了,但我会检查出这个链接。谢谢 – Carlos88