


















1、内连接、左连接、右连接区别?
2、union 和 union all 区别?
union:去重、自动排序,性能差3、where、having、group by 执行顺序?
from → where → group by → 聚合函数 → having → order by → limit
4、模糊查询 like % 优缺点?
%xx、%xx%:不走索引,全表扫描xx%:前缀匹配,可以走索引5、count (*)、count (字段)、count (distinct) 区别
count(*):统计所有行数,包含 NULLcount(列名):统计该列非空数据count(distinct 字段):去重统计,常用统计用户数6、怎么计算转化率、占比?
ROUND(符合条件数量 / 总数量,2)case when 筛选条件数量7、窗口函数和 group by 区别?
group by:多行合并成一行,丢失明细over(partition by 分组 order by 排序)8、row_number /rank/dense_rank 区别
row_number():连续序号 1,2,3,4(同分不同号)rank():跳跃排名 1,1,3,4(同分同号,跳过)dense_rank():密集排名 1,1,2,3(同分同号,连续)9、lag、lead 作用?
lag(字段):取上一行数据(环比)lead(字段):取下一行数据10、同库多表关联用什么?
优先 left join,保证主表数据不丢失。
11、同实例跨库怎么查?
select * from db1.user left join db2.order on user.id=order.user_id
12、不同类型数据库怎么跨库查询?
异构库(MySQL/Oracle/SQLServer):
13、什么是索引?作用?
索引是数据库目录,加速查询,降低 IO;
缺点:占用存储空间、增删改变慢。
14、索引失效场景(必背)
like %开头 模糊查询left()、date()、+ -15、联合索引最左前缀原则?
建立索引 (a,b,c)
16、主键、唯一索引、普通索引区别
17、事务四大特性 ACID
18、MySQL 事务隔离级别(从低到高)
19、脏读、不可重复读、幻读
20、如何优化慢 SQL?
explain 查看执行计划select *,只查需要字段%xx%21、explain 关键字段有哪些?
type:访问类型,range/ref/eq_ref/system 越好,all 全表扫描最差key:实际用到的索引rows:扫描行数,越小越快22、limit 100000,10 为什么慢?
需要先遍历前 10 万行再丢弃,优化:
用主键 / 索引定位起始位置
select * from t where id>100000 limit 10
23、查找重复数据
select name,count(*) from user group by name having count(*)>1
24、删除重复数据,保留一条
delete from user where id not in (select min(id) from user group by name)
25、分组后取每组最新一条
配合窗口函数 row_number 分组排序取第一行,面试高频。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。