MySQL社区

标题: 联合索引用不了 [打印本页]

作者: hatsubun    时间: 2016-1-18 19:59
标题: 联合索引用不了
  1. SELECT
  2.             a.message,a.createDate,a.id,a.userid
  3.     FROM
  4.             xxx a
  5.     WHERE
  6.         a.createDate>"2016-01-17 14:40:00" AND
  7.         a.tag in ("CONVERSATION_1554_0","CONVERSATION_9487_0","CONVERSATION_29355_342330","CONVERSATION_34711_0")  
  8.             and a.userID != 12 AND
  9.                   a.approvestatus=0
  10.     order by a.id asc limit 0,200
复制代码


我在tag上建立了索引
又建立了4个条件的联合索引,无论怎么改索引顺序或者对索引进行组合,始终只用到了Tag上的索引


作者: nycle    时间: 2016-1-21 14:25
mysql在索引选择上已经比较智能了,你建了组合索引,但却没有用上组合索引,那是因为mysql认为组合索引的效率不如独立索引好。
比如:条件中如果是userId=xxx and tag in xxx,相信可以用上userId和tag的组合索引。




欢迎光临 MySQL社区 (http://www.mysqlpub.com/) Powered by Discuz! X3.2