日期:2014-05-16  浏览次数:21002 次

关于mysql 的btree索引(ACMAIN_CHM请进)
http://forum.csdn.net/PointForum/Manage/TopicManageView.aspx?forumID=ba09fe7e-2fb7-42d3-805e-578a4a8485e1&topicID=a4b29946-d49e-4f87-881d-2fb6053c5294&date=2009-5-20+22:16:29 
接着这个帖子的问题。

mysql> EXPLAIN SELECT E_info.*, E_role_info.roleID, E_role_info.related FROM `E_info` FORCE INDEX(info_time) LEFT JOIN E_role_info ON E_info.infoID = E_role_info.infoID WHERE E_role_info.roleID = 413382 ORDER BY info_time DESC LIMIT 0 , 10; 
+--+----------+-------------+-------+---------------+-----------+---------+-------------------------+----------+-------------+ 
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
+--+----------+-------------+-------+---------------+-----------+---------+-------------------------+----------+-------------+ 
| 1 | SIMPLE | E_info | index | NULL | info_time | 8 | NULL | 20045840 | | 
| 1 | SIMPLE | E_role_info | ref | infoID,roleID | infoID | 4 | news_data.E_info.infoID | 6 | Using where | 
+--+----------+-------------+-------+---------------+-----------+---------+-------------------------+----------+-------------+ 

mysql> EXPLAIN SELECT E_info.*, E_role_info.roleID, E_role_info.related FROM `E_info` LEFT JOIN E_role_info ON E_info.infoID = E_role_info.infoID WHERE E_role_info.roleID = 413382 ORDER BY info_time DESC LIMIT 0 , 10;  
+--+----------+-------------+-------+---------------+-----------+---------+-------------------------+----------+----------------------------------------------+ 
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
+--+----------+-------------+-------+---------------+-----------+---------+-------------------------+----------+----------------------------------------------+ 
| 1 | SIMPLE | E_role_info | ref | infoID,roleID | roleID | 3 | const | 2872538 | Using where; Using temporary; Using filesort | 
| 1 | SIMPLE | E_info | eq_ref | PRIMARY | PRIMARY | 4 | news_data.E_role_info.infoID | 1 | | 
+--+----------+-------------+-------+---------------+-----------+---------+------------------------- +----------+----------------------------------------------+ 


针对25669的查询: 
mysql> EXPLAIN SELECT E_info.*, E_role_info.roleID, E_role_info.related FROM `E_info` FORCE INDEX(info_time) LEFT JOIN E_role_info ON E_info.infoID = E_role_info.infoID WHERE E_role_info.roleID = 25669 ORDER BY info_time DESC LIMIT 0 , 10;  
+--+----------+-------------+-------+---------------+-----------+---------+-------------------------+----------+-------------+ 
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
+--+----------+-------------+-------+---------------+-----------+---------+-------------------------+----------+-------------+ 
| 1 | SIMPLE | E_info | index | NULL | info_time | 8 | NULL | 20046053 | | 
| 1 | SIMPLE | E_role_inf