当前位置:   article > 正文

笔试真题(笔记)—数据库_*7.客户反应线上数据库语句执行过慢,那么在排查问题和优化性能的时候,下面哪个选

*7.客户反应线上数据库语句执行过慢,那么在排查问题和优化性能的时候,下面哪个选

1、在MySql中, productname regexp ‘[1-3]xiaomi’的含义是(A
A. productname匹配”xiaomi字符串前一个字符为1到3”的字符串
B. productname匹配”xiaomi字符串前一个字符为1或3”的字符串
C. productname匹配”xiaomi重复1到3次”的字符串
D.productname匹配“xiaomi重复1或5次”的字符串
解析:参考https://www.cnblogs.com/zhaopanpan/p/10133224.html

2、一个班级的学生分数表如下:
CREATE TABLE IF NOT EXISTS students (
s_id int(11) PRIMARY KEY,
s_name varchar(22) NOT NULL,
s_score int(11) NOT NULL
);
现要查询排名在20之后的学生信息并加入排名s_rank(不包括第20名,分数相同则并列排名,排名不间断),下列哪项查询语句正确(D)
A.select * from (select *,dense_rank() over(order by s_score desc) r_rank from students) st limit 20,9999;
B.select *,dense_rank() over(order by s_score desc) s_rank from students where s_rank >20;
C.select * from (select *,row_number() over(order by s_score desc) r_rank from students) st where st.r_rank >20;
D.select * from (select *,dense_rank() over(order by s_score desc) r_rank from students) st where st.r_rank >20;
解析:排序函数参考https://blog.csdn.net/weixin_46055693/article/details/123236260
还有注意的是,A和C,是先执行where进行过滤再进行select查询的

3、以下关于mysql的使用操作说法不恰当的一项是:(C)
A.业务上具有唯一特性的字段,建议设定为唯一索引
B.超过三个以上的表不建议join
C.页面搜索建议使用左模糊或全模糊
D.利用延迟关联或者子查询优化超多分页场景
解析:参考https://www.csdn.net/tags/MtjaYg5sNjI5MDQtYmxvZwO0O0OO0O0O.html

4、某一天客户向小招反应线上数据库语句执行过慢,那么在排查问题和优化性能的时候,下面哪个选项是小招不应该遵循的原则?(C)
A.使用show processlist查询正在执行的sql
B.使用explain查看某条sql的执行计划,以确定是否可以添加索引
C.对于慢查询sql中出现的所有的查询条件字段增加索引
D.优化业务逻辑,增加缓存

5、视图可用于限制对表中特定行或列中的数据的访问
解析:视图是一种虚拟的表,它允许用户看到或者(有时)更新特定部分的数据。
用户只能看到视图所显示的数据;
简化数据访问操作;
视图必须唯一命名;
视图所查询出来的数据只能进行查看,不能删改!

6、您需要从您的数据库中删除名为 EmployeeView 的视图。应使用哪条语句(D
A.DELETE EmployeeView
B.DELETE VIEW EmployeeView
C.DROP EmployeeView
D.DROP VIEW EmployeeView

7、关于 DELETE和 TRUNCATE TABLE的说法正确的是(BD
A.两者都可以删除指定条目的记录
B.前者可以删除指定条目的记录,后者不能
C.删除整张表的数据, delete比truncate更高效
D.删除整张表的数据, truncate比delete更高效
truncate table与delete都是删除表数据,保留表结构,但是truncate是删除全部数据,并不能删除指定数据。
truncate 比 delete(一行一行的删)速度快,如果有rollback,而truncate不可被撤销,delete可以被撤销。

8、假设58同城的帖子都存在mysql5.6中,帖子的建表语句如下:

CREATE TABLE  info (
  id             int         NOT NULL AUTO_INCREMENT COMMENT '主键',
  uid             int         NOT NULL COMMENT '用户id',
  cid             int         NOT NULL COMMENT '城市id',
  title            varchar(32) NOT NULL DEFAULT '' COMMENT '标题',
  content      varchar(1024)         NOT NULL DEFAULT '' COMMENT '内容',
  PRIMARY KEY (id),
  UNIQUE KEY uniq_index (uid,cid,title)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='帖子表';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

以下哪个sql语句不会用到索引?
A. select title,content from info where id = 278;
B. select title,content from info where uid > 1357912312 and cid > 1;
C. select title,content from info where uid = 1357912312 and title like ‘%招聘%’;
D. select title,content from info where cid = 1 ;

A正确,因为使用了主键索引id
B正确 使用了索引 uid以及cid
C正确 使用了索引uid
D错误 因为根据最左前缀原则,当没有使用uid的时候,不走索引。至于大家常说的顺序,根据mysql版本的更新,比较新的版本已经会自动优化了,与顺序无关了。
因为查询条件中某列使用LIKE条件后的字段是以%开头的(如:like '%招聘' 或者 like '%招聘%'),存储引擎不能使用索引中该列及其后的所有列,但是语句中索引是 uid cid title顺序的,只是title以及后面的索引不可以使用了(虽然title后面也没有索引了)。但是uid的索引是可以用的。
可以参考https://blog.csdn.net/weixin_46055693/article/details/125122920?spm=1001.2014.3001.5501

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/403993
推荐阅读
相关标签
  

闽ICP备14008679号