• 面试遇到的问题


    1 代理模式,单例模式等 大数据并发,索引(int 索引和string索引)

    2设计模式是应对变化.(20多种模式)
    数据经常死机了怎么处理,先看看是不是连接池不够用了.

    3面试的问题四类(1)Java基础知识,(2)多线程(3)大数据并发处理(4)数据库优化.

    (1)基础知识:设计模式:目的应对变化.找到合适的场景,并且知道优缺点.
    (2)多线程:比如有几个人同时访问数据库,20个人 如何保证20个人同时访问数据,因为Servlet的请求,一般最多是30000个,,servlet的请求就是多线程的,
    同时开启了多个线程.假如大于30000的话可以使用负载均衡,将程序部署到多个服务器上去,根据ip地址访问的时候随机转发.或者使用消息队列Messsage Query.进行排队处理.
    (3)大数据量的并发处理比如抢票的系统的制作:
    改进方法:(a)INO 也就是说当用户登录的时候,其实并不是真正跟系统建立了关联,当用户点击订票的时候才开始与数据库进行关联的.
    (b)使用Hibernate设置一级缓存,和二级缓存,假如说用户经常访问的数据,比如之前的项目中有基础数据,这些不经常变动的数据放到缓存中.
    如果不从数据库中取数据,比如比较复杂的数据才与数据库交互查询.
    (c)增加索引,对经常查询的列建立索引,比如int类型的和string类型的.int类型和string类型有区别,int数字比较的会快一些,
    string比较的慢一些,假如比较string的话,可以考虑使用前几位进行比较.index(23).
    (d)数据库的SQL优化,比如把一对一的关系改成一对多.
    (e)磁盘分区,也就是说,将相同的数据放到不同的数据表中进行存放,然后根据方法判断.应该访问那个数据.比如对过来的请求用模处理,分发过来.相同的表进行切割到不同
    的数据当中,用户根据模处理转发请求.
    (f)分表字段处理,比如用户80%经常访问一个表中的两个字段,其他的字段并不常访问,可以将表拆开,将这两个字段放到另一个张表中,这样100的人速度都会快起来.
    (g)所有的数据的访问一般并发100左右,可以建立连接池,连接池这样不需要频繁的与数据建立连接,释放链接.连接池可以一直连接,用户需要连接数据的话,申请连接池.
    用完之后,给下一个请求使用连接池.
    (4)数据库的优化,:建立索引,优化SQL,比如1对1改成1对多;

  • 相关阅读:
    随感
    Serializable方式实现数据传递
    Serializable方式实现数据传递
    MeterailDesign最佳UI设计
    MeterailDesign最佳UI设计
    Metarial Design之ToolBar
    Metarial Design之ToolBar
    Android"寻龙点穴"指南针
    如何完全卸载VS2010(亲自体验过)
    【杭电】[2049]不容易系列之(4)——考新郎
  • 原文地址:https://www.cnblogs.com/aspirant/p/3521467.html
Copyright © 2020-2023  润新知