表结构:
CREATE TABLE `word` (
`id` int(8) ,
`word` int(8) ,
PRIMARY KEY (`id`,`word`)
);
主键为id+word(id并不是唯一),我要根据一个id,取出随机的一个word:
mysql> explain SELECT * FROM word where id=4963 ORDER BY rand() LIMIT 1;
+----+-------------+--------------+------+---------------+---------+---------+-------+------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+------+---------------+---------+---------+-------+------+----------------------------------------------+
| 1 | SIMPLE | word | ref | PRIMARY | PRIMARY | 3 | const | 12 | Using index; Using temporary; Using filesort |
+----+-------------+--------------+------+---------------+---------+---------+-------+------+----------------------------------------------+
显然使用 SELECT * FROM word where id=4963 ORDER BY rand() LIMIT 1; 性能很差
有什么办法可以优化这句SQL使之效率提高?