面试题问如何建立索引这种问题该怎么回答呀

各位大佬们!
面试题问如何建立索引这种问题该怎么回答呀。。。。
问题1
比如一张用户表 有字段:id,名字name,性别sex,电话tel,年龄age,地址addr  ,现在sql不确定,所有字段都可能被查询。问怎么建立索引。
问题2
一张学生表student(学生id,名字name,班级class_id),一张课程分数表student_score(id 课程id 学生id 分数score  ),怎么查1班总分大于500的学生 的姓名和分数,
怎么建立索引。

=====9.19=====
第二个问题,表的字段  id , subject_id , student_id ,score


全部评论
问题一: 首先对id建主键索引是应该的吧,然后性别和年龄重复性太大不适合建索引,然后电话是唯一的,适合建唯一索引,地址得看是什么地址了,宽泛的地址重复性也很大,姓名重复性应该不是太大,可以建个普通索引。 问题二: select student.name, student_score.score from student join student_score on student.class_id=1 and student.id=student_score.student_id and student_score.score>500; 班级和分数重复性太大不适合单独建索引,可以和student_id一起建个组合索引,on子句中student表中涉及到的列(student_id, class_id)建组合索引,student_score表中涉及的列(student_id,score)建组合索引
点赞 回复 分享
发布于 2018-09-18 22:52
CREATE INDEX id_name_sex_age_addr ON 用户表 (id,name,sex, age);tel可加可不加 如果Tel唯一创个unique索引
点赞 回复 分享
发布于 2018-09-18 22:57
select b.name,a.sumscore from(select 学生 id,sum(score)as sumscore from score where sumscore>500)a join student b on a.学生id=b.学生id
点赞 回复 分享
发布于 2018-09-18 22:49

相关推荐

白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
18
分享

创作者周榜

更多
牛客网
牛客企业服务