这个sql有人帮我优化一下吗?select * from ky_message where msg_to='系统' or msg_to=? or msg_title=? or msg_title=? or msg_title=? order by msg_id desc

解决方案 »

  1.   

    show index from ky_message贴出来你的索引情况。
      

  2.   

    select * from ky_message where msg_to='系统' or msg_to=? or msg_title=? or msg_title=? or msg_title=? order by msg_id desc
    给msg_id建立clustered index(desc)
    并使用in如:
    select *from ky_message where msg_to in ('系统','?')
         or msg_title in (?,?)
    可以考虑使用union句子合并查询比如:
    select * from ky_message where msg_to in('系统','?')
    union
    select * from ky_message where msg_title in(?,?);
      

  3.   

    show index from ky_message
      

  4.   

    哦,索引是没有的,只有msg_id是主键.
      

  5.   

    select *from ky_message where msg_to in ('系统','?')
    or msg_title in ('?','?','?')
    order by msg_id desc