面试的问题都比较常见,我没有准备好。下面的题目答案仅供参考。今天二面过了,给了offer。
面试体验一般,hr不够热情,相比大点的公司来讲,没有提前通知面试,面试官上来就直接问问题,都没有自我介绍,有点急哈哈哈。
电话面试
看过Django、Flask这类同步框架的源码吗?
(回答的不好)Django和Flask源码在以前看过,现在基本都忘了,回去得补补。
了解过异步框架吗?如何实现的?原理?需要注意什么
(回答的不好)tornado这类的异步框架实现,没看过,得补补
在Django中遇到过性能问题?如何高并发吗?
(回答的不好)在部署中我们采用的是uwsgi,会启动多个进程。
- 在部署层可以搭建负载均衡,nginx/haproxy
- 使用uwsgi多进程部署
- 在代码层优化读多写少的接口,增加多级缓存,碰到有io阻塞的情况可以开启多个协程操作
在Django同步框架中,如何做到事件循环切换的?
问题应该是这样的:django本事是一个主线程,那代码里面的多线程和多协程如何拿到主线程的执行权限?我到现在都没有搞懂是哈。
Python中协程如何实现?如何调度起来的?
问题描述下:django的主循环是外部的,如果你用原生的协程(asyncio),你得拿到主循环的io,这个你怎么拿到的?外部的主事件循环是django的,你内部的协程怎么拿到的呢?怎么调度的呢?
python3中协程,如果创建多个协程,
考察调度算法
Mysql慢查询如何优化,解决mysql性能问题(几乎每家公司都问题到)
我既然回答用es替代,呀四啦。
分析慢在哪里,是否是模糊搜索,是否是大量数据join
- 可以试试加索引
- 缩小搜索范围
- 优化join
说说Mysql索引
- mysql索引是一种数据结构,方便更快的查询
- 在innodb中默认使用的是B+树索引
比较下B+树和hash索引
使用过numpy和pandas吗
很少用。。。
Left join 和Right join的区别,2个表join需要注意什么?效率问题?
如果让你写一个定时任务?类似系统中的crontab?怎么获取任务的进度和状态?
现场面试(二面)
讲下自己的项目
- 巴拉巴拉。
会用django 的 orm吗?会手写sql吗?
- 问的少,没有延伸
手写Sql如何动态设置字段名称?除了变量的方式有没有更加灵活的方式
- 刚开始回答设置变量,用变量代替字段
Celery怎么监控?
celery beat有数据库回调
celery 单点问题?挂了怎么办?
celery work抢到任务如何加锁?
Mysql数据库查询如何加锁?怎么看是否加锁?
redis中如果碰到大的数据,几十兆的数据?怎么处理?是否有性能问题?
进程间如何通信的
- 管道
- Mq
- 信号量
管道效率不高?如何序列化的数据很大,会破坏数据结构?
如何用python处理一个计算,性能不够,怎么处理?
- cpu密集型可以考虑用c写转为python
- io密集型可以考虑多进程+多协程
原创文章,作者:站长,如若转载,请注明出处:https://wsppx.cn/890/%e7%bd%91%e7%bb%9c%e5%bc%80%e5%8f%91/