简单查询但无法摆脱“using filesort”:
CREATE TABLE IF NOT EXISTS `online` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`expiration` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `expiration` (`expiration`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1925234 ;
mysql> explain SELECT i.id, i.uid, i.expiration, u.nick, u.mainpicture
-> FROM online i join usertable u on i.uid = u.id
-> order by i.expiration DESC limit 0,12;
+----+-------------+-------+--------+---------------+---------+---------+----------------+------+----------------+
| id | select_type | table | type | possible_keys | key | key_len | ref …Run Code Online (Sandbox Code Playgroud)