java面试总结-提升篇

1.mysql的InnoDb与MyISAm引擎有什么区别?sql优化怎么优化?

myssql引擎常用的有MYISAM,Memory,InnoDB,Archive;

InnoDB支持事务处理,支持外键行锁,存储数据是将数据和索引全储存在表空间里面,跨平台方便

MyISAm没有事务,不支持外键和行锁,但是支持全文检索,储存数据是分三个文件储存,分别储存表结构,表数据,表索引,跨平台不方便

2个引擎选择,MyISAm相对简单,所以在读写效率上高,但是无事务,原子性低,所以一般用作系统读多写少上,而InnoDb则相反,常用语写多读少,且写并发高的时候

sql优化点:

    1.表设计之初需要考虑到多表查询的情况,对某些不可变或不常变字段做冗余设计,减少多表查询

    2. 在sql查询的优化上对where条件查询和order by排序字段上做索引优化

    3. sql查询的语句语法,避免索引失效应该注意的点为:

        1.不要谁用null判断,应该给字段设置一个默认值,然后对默认值做不等判断

       2.不要对索引字段使用函数,算出表达式操作,这样索引将会失效,计算的业务操作应该放在程序业务层去进行处理

       3.避免使用!= <> in not or之类的语法,in not可用exists替代,or也可用union操作替代

      4.当使用模糊查询的时候,不要使用左模糊查询,这样索引也会失效,解决办法是增加一个当前字段的reverse字段,然后在需要做左模糊查询的时候 模糊查询对reverse字段做模糊查询,这样左模糊查询则变为了右模糊查询,如果是左右模糊的查询,建议用全文索引,无法用全文索引的话使用locate的方法解决

2.redis的储存结构,Redis与mongoDB区别及使用场景?

redis有5中结构分别是string的key-vakue,list链表,set集合,Zset有序集合,hash对象

redis与mongoDb区别:redis支持多种数据类型,读写效率高,支持持久化操作,单核,事务支持较弱;MongoDB数据结构单一,支持索引,游标等操作,查询功能强大,能存取海量数据,不支持事务

MongoDB是一种文档型非关系型数据库,所以适用海量数据,且要求查询效率的时候用

Redis是一个纯key-value内存缓存,且结构丰富,用于做多个数据的缓存使用

3.消息队列的机制是什么样的?rabbit与kafka的区别?

消息队列即是将一些操作按照既定顺序排成队列,然后再对队列中消息消费的一种模式,主要由生产者,消费者,broker组成,生产者产生消息放入broker的队列中,消费者从broker中取出消息进行消费

rabbit支持点对点和发布点阅模式,rabbit客户端连接服务端,然后根据其对于订阅,当有新消息的时候,服务端就会将消息推送到客户端,且有消息确认机制,不支持批量操作

kafka只有发布订阅模式,kafka消息获取主要靠客户端主动去服务端拉去消息,且无消息确认机制,但是吞吐量高,支持批量操作

4.solr和elastaicSearch区别?

solr,elastaicSearch都是优秀的搜索引擎,solr的社区丰富,支持多种格式索引,在不考虑建索引的情况下,搜索效率高于es,建立索引时,搜索效率低,实时搜索的效率不高,es本身就是分布式的,不需要其他组件做分布式支持,是一个完全接近实时的搜索引擎,数据存储只支持json,搜索效率高

5.spring cloud是什么?eureka是怎么做到服务注册和发现的?

spring cloud是一个基于spring boot的基础上,集成许多第三方库,简化了分布式基础设施的开发,如服务的发现注册,配置中心,消息总线,负载均衡,断路器等,一系列框架的有序集合

eureka由服务提供者和服务消费者组成,当服务提供者启动服务想eureka server注册服务后,eureka server会进行集群的同步,然后eureka的消费者要调用服务提供者服务时,会想注册中心获取服务地址,然后缓存到本地,当eureka检测到服务提供者发生故障的时候,则会先修改服务状态为DOWN状态,然后向当前该服务订阅的消费者进行状态更新.




 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值