zoukankan      html  css  js  c++  java
  • 面试遇到的问题

    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对多;

  • 相关阅读:
    spring 自定义事件发布及监听(简单实例)
    解析spring中的BeanFactory(看完会有收获)
    如何提高锁的性能
    spring MVC模式拦截所有入口方法的入参出参打印
    java基于feemarker 生成word文档(超级简单)
    数据库事务特性汇总
    如何让window.open()以post请求方式调用(巧妙解法)
    a标签添加背景图片的解决办法
    深入理解Django Admin的list_display, list_filter和raw_id_fields,filter_horizontal选项
    django配置log日志
  • 原文地址:https://www.cnblogs.com/aspirant/p/3521467.html
Copyright © 2011-2022 走看看