面试集合

已经看过,还需要温习的:

1.spring+mybatis配置读写分离 两种方式

2.SpringBoot + MyBatis + MySQL 读写分离实战

3.排查CPU过高问题

  1. top 找到占用CPU最高的进程
  2. ps -ef | grep 进程ip 查看进程下边的所有服务
  3. 查看服务打印的日志
  4. jstack 进程ip 下载Java堆栈信息
  5. top -p 进程id -H 查看该进程下占用CPU高的线程id
  6. 将线程id转为16进制 用这个16进制线程id 在堆栈日志里查找对应的栈信息 所执行的代码

4.Sharding-JDBC简介

5.Select-SQL执行过程
基础的SQL执行顺序

1.from  先选择一个表,或者说源头,构成一个结果集。
2.where 然后用where对结果集进行筛选。筛选出需要的信息形成新的结果集。
3.group by 对新的结果集分组。
4.having 筛选出想要的分组。
5.select 选择列。
6.order by 当所有的条件都弄完了。最后排序。

Join连接查询执行过程
详细过程2
总结
外连接:(letf join,right join,full join/mysql不支持full join/)外连接必须用using或on指定连接条件。
on 和on后边的and or条件 先于 where执行
on后边的and or条件只对单个表的数据过滤,不影响整体的行数
where对join后的结果整行进行过滤,影响整体的行数
在对最终结果集没影响的前提下,优先选择结果集最小的那张表作为驱动表

自然连接:
要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列。

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
on后边的and or条件 如果一个表的数据不满足,则整行被过滤,影响整体的行数

6.Mysql数据库索引
Myisam使用的是非聚集索引也叫非聚簇索引
InnoDb使用的是聚集索引()
6.1聚集索引和非聚集索引:
定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。
–主键索引的叶子节点存的是整行数据。在 InnoDB 里,主键索引也被称为聚集索引(clustered index)。
–非主键索引的叶子节点内容是主键的值。在 InnoDB 里,非主键索引也被称为二级索引(secondary index)。
如果语句是 select * from T where ID=500,即 主键查询方式,则只需要搜索 ID 这棵 B+树 ;
如果语句是 select * from T where k=5,即 普通索引查询方式,则需要先搜索 k 索引树,得到 ID的值为 500,再到 ID 索引树搜索一次。这个过程称为回表
6.2InnoDb:
–InnoDB表存储基于主键列的值进行组织,以加速涉及主键列的查询和排序。 为获得最佳性能,请根据性能最关键的查询仔细选择主键列。 因为修改聚集索引的列是一项昂贵的操作,所以选择很少或从不更新的主列。
–InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。
–聚集索引的缺点就是修改起来比较慢,因为它需要保持表中记录和索引的顺序需要一致,在插入新记录的时候就会对数据也重新做一次排序。
6.3 组合索引和单个索引
–多个单列索引:在多条件查询时优化器会选择最优索引策略,可能只用一个索引,也可能将多个索引全用上! 但多个单列索引底层会建立多个B+索引树,比较占用空间,也会浪费一定搜索效率,故如果只有多条件联合查询时最好建联合索引。
–组合索引最左前缀原则:
如果第一个字段是范围查询需要单独建一个索引
在创建联合索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。这样的话扩展性较好,比如 userid 经常需要作为查询条件,而 mobile 不常常用,则需要把 userid 放在联合索引的第一位置,即最左边。

7.分布式唯一ID生成方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值