mysql面试题,求解释

qq_38821601 2018-01-28 03:03:40

倒数第二个不懂,求解释,谢谢
...全文
1310 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
生命沉思者 2018-02-18
  • 打赏
  • 举报
回复
引用 4 楼 VertigozZ 的回复:
mysql的联合索引的特点决定的啊 联合索引最左前缀匹配原则是非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到
你确定这样的正确的?有什么依据吗?
山楂罐头 2018-02-11
  • 打赏
  • 举报
回复
这个应该就是考索引的最左前缀匹配原则吧,只是看答题人是否理解。 2楼、3楼都太认真了吧。。。
Rotel-刘志东 2018-02-02
  • 打赏
  • 举报
回复
从表面上看都可以用到索引的,但具体还是要结合应用场景的。
VertigozZ 2018-02-02
  • 打赏
  • 举报
回复
mysql的联合索引的特点决定的啊 联合索引最左前缀匹配原则是非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到
zjcxc 2018-01-30
  • 打赏
  • 举报
回复
既然是面试题,你应该直接问一下你的面试官 照我看来,如果没有进一步的限制条件或考核目的,那么所有的情况都能用索引的 如你的倒数第2个,如果单从检索效率来讲索引的使用: 先按照他的说法能成立的情况来理解, c 不能用索引: 难道判断 c 成立的条件还要关联原表去去一次数据?那样的效率比直接在索引上判断效率差吧?你可能会说反正也要关联原表取数据,但我也可以说,你没有给查询列,如果查询列不需要关联原表呢? 就算 c 有索引,你又如何确保 ab 条件直接索引 + c 条件走索引 再并集的结果就一定比 abc 索引效率高?比如 a,b能过滤大量数据,c不能过滤数据,很显然分开走效率会列差 ----------------------- 所以最终的结论是,你应该问面试官,看他的考核目的
伟洪winni 2018-01-30
  • 打赏
  • 举报
回复
b>10 , b like 'xxxx'% 是一个范围, 不是具体的值, 接在后面的都用不了索引

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧