首页 > 试题广场 >

表person(idint,uidint,timedate)

[单选题]
表person(id int,uid int,time date)涉及以下3条sql:
(1)select * from person where id=1 and uid=1;
(2) select * from person where uid=1; 
(3) select * from person where uid=1 order by time desc; 
只建一个索引时,如何建最优()
  • idx1(id,uid)
  • idx2(uid,id)
  • idx3(id,uid,time)
  • idx4(uid,time)
这个跟最左前缀原则应该有关吧?求解释
发表于 2022-09-04 12:29:34 回复(0)
因为C是聚集索引,要这三个都在同一条搜索语句才能去使用,这样搜索语句才会搜索出来
而单条搜索语句只有id和uid,或者uid和time,所以需要从这两个中比较哪一个能够更好提高搜索性能,一般来说, order by的字段会有更大的数据量, 因此建立索引时优先覆盖time字段, 顾选d而不选b
发表于 2022-07-21 10:36:20 回复(0)
是不是因为id是主键本来就有索引就可以了
发表于 2022-03-17 14:42:33 回复(3)
详情请看数据库的索引构成原理
发表于 2021-08-22 00:06:06 回复(0)