关于索引的问题

表A,假设字段名有ID、NAME,ID是索引表B,假设字段名有ID、NAME,此表无索引。问题:1、select id from A where left(id,3)=‘123’,是否会用到索引?2、select * from A join B on A.id=B.id,是否会用到索引?3、select * from A join B on A.name=B.name and left(A.id,3)='123',是否...显示全部

表A,假设字段名有ID、NAME,ID是索引

表B,假设字段名有ID、NAME,此表无索引。

问题:

1、select id from A where left(id,3)=‘123’,是否会用到索引?

2、select * from A join B on A.id=B.id,是否会用到索引?

3、select * from A join B on A.name=B.name and left(A.id,3)='123',是否会用到索引?

收起
参与7

查看其它 2 个回答masaly的回答

masalymasaly其它易诚

1)不一定,用索引的话,也是索引全扫描。

2)不一定,看表的数据量、表的连接方式。

3)应该不会,因为用到了name字段查询,如果使用索引,还需要回表查询,索引全扫描+回表查询导致的IO成本应该比全表扫描高。

软件开发 · 2016-06-28
浏览1128

回答者

masaly 最近回答过的问题

回答状态

  • 发布时间:2016-06-28
  • 关注会员:4 人
  • 回答浏览:1128
  • X社区推广