解决方案 »

  1.   

    楼主的内容太长了。建议能把问题直接了当提出。然后让别人回答YES/NO。
      

  2.   

    好的
    1.索引有无必要增加时间戳字段?
    2.MYSQL有无返回多个list的方法?
    3.一张表完成还是两张表将说说主题和回复拆开好?
      

  3.   


    你的索引是什么样?  我猜测你可能是指这个  KEY `i_post_fk_anchor_user` (`fk_anchor_user`,`post_time`) 
    那你的查询语句是什么? 索引仅是针对某些查询起作用,不可能一个索引对所有类型的查询语句均起作用。
      

  4.   


    你的索引是什么样?  我猜测你可能是指这个  KEY `i_post_fk_anchor_user` (`fk_anchor_user`,`post_time`) 
    那你的查询语句是什么? 索引仅是针对某些查询起作用,不可能一个索引对所有类型的查询语句均起作用。对的,索引是 KEY `i_post_fk_user` (`fk_user`,`post_time`) 。上面多了个单词,不好意思。
    查询语句是select id from t_post where fk_user = ? order by post_time DESC limit 10.这样得到了post表的
    idList,然后我用这个idList查询第二张表:
    select * from t_reply where fk_post = ? ;这样得到了该条说说的所有评论,其实我也想在这里order by reply_time,因为说说的评论是按照时间先后顺序排列的,即使不在数据库排序,到了Java service也要排序。
      

  5.   

    好的
    1.索引有无必要增加时间戳字段?
    2.MYSQL有无返回多个list的方法?
    3.一张表完成还是两张表将说说主题和回复拆开好?
    好吧   忘记了left join,一直想着in
      

  6.   


    针对 select id from t_post where fk_user = ? order by post_time DESC limit 10. ,如果同一用户的记录很多,则  (`fk_user`,`post_time`) 索引有效,如果同一用户仅有几个记录,则这个索引意义不大和 (`fk_user`,) 没什么差别,极端的情况就是每个用户只有一条记录,则这个索引(`fk_user`,`post_time`) 完全褪化成 (`fk_user`,) 。但另一种极端情况主浊全表100万条记录全是同一用户的记录,则可以体现(`fk_user`,`post_time`) 索引的作用。