-
数据选型:首先是数据选型方面进行优化,选取最适用的字段属性,数据的表越小,查询越快
-
范式应用:合理使用范式和反范式
-
存储引擎的选择:如果该数据库读操作较多,存储引擎选择MyISAM,如果是写操作多,选择innodb
-
主键选择:代理主键
-
执行计划explain:使用explain+sql测试sql语句执行情况,然后优化sql语句
-
注意的关键字:type关键字,通常达到range级别,最好是ref,而ref最好是一个常数。
-
-
索引优化:
-
尽量在主键上添加使用索引
-
利用覆盖索引、索引下推机制,注意组合索引的匹配原则,
-
尽量使用唯一索引,避免使用普通索引
-
-
查询优化:这个应该被包含在执行计划中,但是个人觉得还是拆出来,其实我们在写的时候就该注意sql的效率,explain执行计划只是验证
-
优化数据访问,避免查询中出现筛选大量数据,可以通过limit限制;
-
避免select * from table这种全表扫描的语句
-
如果业务没有特殊规定数据,那么就尽量避免使用UNION,可以考虑UNION-ALL替换,因为后者不会过滤重复数据,效率高于UNION
-
-
请求解析DipatcherServlet路径:客户端发出⼀个http请求给web服务器,web服务器对http请求进⾏解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
-
匹配处理器Handler:DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http⽅法、请求报⽂头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
-
处理器进⾏处理:DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进⾏封装),再由具体的HandlerAdapter对Handler进⾏具体的调⽤。
-
处理器返回逻辑视图ModelAndView对象给DispatcherServlet:Handler对数据处理完成以后将返回⼀个ModelAndView()对象给DispatcherServlet。
-
Dispatcher通过ViewResolver将逻辑视图转化为正式视图view:Handler返回的ModelAndView()只是⼀个逻辑视图并不是⼀个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
- Dispatcher通过model解析出ModelAndView()中的参数进⾏解析最终展现出完整的view并返回给客户端。
昨天hr小姐姐说会拉一个架构进来和我面试
整个人慌的一批,半夜复习到了一点多。因为之前没有面试JVM、线程、锁相关的问题以及MySQL事务的问题,结果没问。
面试官:说说你做的这个IoT消防平台项目吧,你主要负责那些功能
我:(前面感觉还正常)然后我从项目立项背景到具体功能模块和他讲了一下
这一面基本没问技术,问的都是一些“人情世故”
比如:(我清理手机的时候把录音给误删了,仰天常叹啊)
1. 你在这个项目中学到了那些?
2. 你对你们公司最认同的有哪些地方
3. 你希望你的下一任领导是个什么样的人
4. 如果满意度10分,你会给你的公司打多少分?(我没给满分,怕公司太骄傲,开玩笑哈哈)
5. 为什么会给这个分数
6. 你对新的公司有什么期望?
7. 你在工作中,和同事产生过分歧吗?怎么解决的?
8. 你对新工作的业务有什么样期许?
还有好多忘记了
最后就是你有什么想问我的?
我从技术提升、职业规划、以及公司现用的框架这几个方面问的。
当天下午三面:
问自身的情况:
空档期干了什么?
我:自己买课学习
是否是培训机构?
我:自学
怎么验证学习成果?
我:做课程中的项目,然后去刷刷题等等
你的期望薪资多少(不要问我要了多少)
基本这样,难度不大。
全部评论
(12) 回帖