某果面试总结

更加了解自己的性格评价,沉稳,犹豫,行动胜于语言,大局观。

面试的遇到主要问题:

1、已有的管理经验回答不好

2、原来项目的经历特点没有整理好,主要准备和总结的都是python和django方面的

比如:协议是同时建立64ktcp或者udp之上的协议,协议用到的保活定时器状态机,tcp拆包循环发包反复建联,和服务器处理并发性能,都没有提到。

3、学习能力没有完全展现出来

自学django,英文文档,不断总结,并尽量深入背后的原理

4、缺乏数据库大量数据操作方面的知识和高并发场景的解决方案

1、各种缓存,页面缓存,数据库缓存(http头部添加一个失效期,内容压缩,gzip)(***)

2、反向代理缓存,nginx是多线程,因为tornado单线程异步网络程序 和django同步的

3、优化数据库请求时间,实在费时的要改成异步的(***)

4、html静态化,信息发布系统cms,将频繁使用的数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现。(***)

5、图片服务器分离

6、数据库集群-mysql的主从服务器和库表散列(不同模块使用不同的数据库或者表,按照一定策略对某个页面或者功能更小的数据库散列)***


2.0极少概率bug解决办法:

1、实时debug模式调试和debug log,异步和多线程下可能没有效果,因为它无法显示全部流程的栈信息。

2、如何重现bug

3、构造高并发压力测试系统,分析架构本身可能存在的缺陷

4、构造稳定的异常请求


4.3数据库操作补充:

use database

show tables;

inner join,left jion(左表不匹配的也显示),right join

自关联

关系存储 --自关联和外键语法一样
1、创建时候指定外键 foreign key(stuid) references students(id);
2、alter table x add constrai consname 
子查询

自关联查询
create view v_classify as 
select cla2.* from classify as cla1 
inner join classify as cla2 
on cla2.claid=cla1.id
where cla1.name = '家电'
 
使用视图
select * from v_classify

视图:封装查询命令,方便重复使用

级联操作:一个表删除,另一个表对应引用会删除或者置为空

建立索引:

    分析哪些where查询字段慢,对这些字段建立索引

    单列索引,多列索引

    越小的数据,整形的数据,避免用NULL(所有NULL列都难以查询优化)

    where逻辑中,等值优于范围(范围没法索引),or运算符也会阻断索引

    建立方法:create index indexname on table(username(length),age)

    缺点:其他操作会额外维护索引速度,占用更多硬盘

4.4

    1,可以将页面做成静态,动态的部分用ajax异步来获取资源

    2、

from django.template import loader
import codecs

outcontent = loader.render_to_string(htmlfilename,{})
outname=htmlfilename+'.static'
outputfile = codes.open(outname,'w','utf-8')
outputfile.write(outcontent)
outputfile.close()
#如果不存在静态文件则生成静态文件,存在则直接返回

这种方式和页面缓存好相似

4.6

水平分割(库表散列)

将数据按照key散列(mod)到不同数据库节点上面,(缺点扩容困难,因为新的散列方法会对原来方式有冲突),像月份这种不需要扩容的好使

垂直分割

将数据列分为常用列和不常用列,分开时候放相同主键。(优点io快,利用cache效率更高,缺点增加jion操作)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值