See other bug report at http://bugs.mysql.com/bug.php?id=31001
Basically, if you use where clause in the query like this. The primary won't sort.
SELECT * FROM (`store`) WHERE `publisher_id` = 1006 ORDER BY `store_id` descIn the query, store_id is the primary key in the innodb.
If you remove the where clause, it will sort correctly.
WTF! This is a critical bug. How come MySQL don't catch that at first place. This bug seem to be there for a long time.