面试整理(第二天)

mac2024-10-28  9

1.sql语句优化

1.尽量避免使用 * 作为查询结果

2.在使用模糊查询时,避免使用 %%

3.避免使用!=,not in,not null,in等操作符

4.在查询基数大时,用betweent and 代替 limit

5.不要在列上进行运算

6.避免类型转换

7.能使用union all 就不要使用 union (尽量不要使用or)

8.利用limit 1取得唯一行

9.尽量少排序

10.建立索引,加快查询效率

11.使用批量插入节省交互

12.对多表关联查询,使用视图

13.优先使用内连接

14.尽量不要用 by rand()命令

15.尽量使用数字型字段

2.组合索引

索引(a,b,c)

a

a,b

a,b,c

(a,b,c )  ------  可能只走a,b(考虑乱序)

(a,c)---只走a

(b) (b,c)不走

3.索引重建

https://www.cnblogs.com/Alight/p/4601003.html

4.索引覆盖

解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖。

解释二: 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。

解释三:是非聚集组合索引的一种形式,它包括在查询里的Select、Join和Where子句用到的所有列(即建立索引的字段正好是覆盖查询语句[select子句]与查询条件[Where子句]中所涉及的字段,也即,索引包含了查询正在查找的所有数据)。

不是所有类型的索引都可以成为覆盖索引。覆盖索引必须要存储索引的列,而哈希索引、空间索引和全文索引等都不存储索引列的值,所以MySQL只能使用B-Tree索引做覆盖索引

5.基本数据类型长度

类型    占用字节    占用位数    数值长度

byte    1    8    -128~127(-2的7次方到2的7次方-1)

short    2    16    -32768~32767(-2的15次方到2的15次方-1)

int    4    32    -2147483648~2147483647(-2的31次方到2的31次方-1)

long    8    64    (-9223372036854774808~9223372036854774807)(-2的63次方到2的63次方-1)

float    4    32    ( 1.401298e-45~3.402823e+38)(e-45是乘以10的负45次方 ,e+38是乘以10的38次方 )(2的-149次方 ~ 2的128次方-1)

double    8    64    (4.9000000e-324 ~ 1.797693e+308 )(2的-1074次方 , 2的1024次方-)

char    2    16     

boolean    1    8     

6.sql执行流程

https://blog.csdn.net/zhutianrong520/article/details/89931661

7.aop ioc设计模式

IOC就是典型的工厂模式,通过sessionfactory去注入实例。

AOP就是典型的代理模式的体现。

https://blog.csdn.net/niejiangnan9235/article/details/75569307

8.mybatis核心组件

SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口)

SqlSessionFactory:依靠工厂来生成SqlSession(会话)

SqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取Mapper的接口

SQL Mapper:它是由一个Java接口和XML文件(或注解)构成的,需要给出对应的SQL和映射规则。它负责发送SQL去执行,并返回结果

https://blog.csdn.net/qq_40378034/article/details/100605072

9.如何获取一个线程安全的hashmap

实现线程安全的方式有三种,分别是使用HashTable、Collections.SynchronizeMap、ConcurrentHashMap。

10.线上环境出问题如何排查。

https://blog.csdn.net/GitChat/article/details/79019454

11.多线程会出现什么问题。

12.url是如何找到DispatcherServlet

13.jdk8新特性

https://blog.csdn.net/hzj1998/article/details/89492503

14.spring5新特性

https://blog.csdn.net/qq_41744145/article/details/100164521

15.jvm内存结构

https://blog.csdn.net/luoyuan323/article/details/98937756

16.redis分布式锁实现原理

https://blog.csdn.net/Andy86869/article/details/81668355

17.springboot和传统的项目区别

18.左链接 右链接 内链接 有什么区别

左连接:左边有的,右边没有的为null

右连接:左边没有的,右边有的为null

内连接:显示左边右边共有的

19.sql语句执行顺序

MySQL语句执行顺序:FROM > 表链接(inner join、left join、right join) > WHERE >group by 进行分组 > having过滤 > select > order by 语句排序 > 分页语句

最新回复(0)