获得徽章 1
- #青训营笔记创作活动#
1月6日 day21
今天学习了MySQL的索引机制,从索引的由来,到索引概述、索引管理、索引分类、唯一/全文/联合/空间索引的创建与使用等内容,进行了全面概述评论点赞 - #青训营笔记创作活动#
1月4日 day20
今天学习了使用索引的方法①查询SQL中尽量不要使用OR关键字,可以使用多SQL或子查询代替。
②模糊查询尽量不要以%开头,如果实在要实现这个功能可以建立全文索引。
③编写SQL时一定要注意字段的数据类型,否则MySQL的隐式转换会导致索引失效。
④一定不要在编写SQL时让索引字段执行计算工作,尽量将计算工作放在客户端中完成。
⑤对于索引字段尽量不要使用计算类函数,一定要使用时请记得将函数计算放在=后面。
⑥多条件的查询SQL一定要使用联合索引中的第一个字段,否则会打破最左匹配原则。
⑦对于需要对比多个字段的查询业务时,可以拆分为连表查询,使用临时表代替。
⑧在SQL中不要使用反范围性的查询条件,大部分反范围性、不等性查询都会让索引失效。展开评论点赞 - #青训营笔记创作活动#
1月3日 day19
今天学习了数据库,Bytebase确实是一款实用的数据库管理及变更工具,Bytebase是一款面向开发者的数据库变更管理工具,目前在Github上已有3.6K+Star。SQL审核功能可以避免开发人员对数据库的误操作。展开评论点赞 - #青训营笔记创作活动#
1月2日 day18
今天学习了慢SQL优化思路。1.慢查询日志记录慢SQL。2.explain分析SQL的执行计划。3.profile 分析执行耗时。4.Optimizer Trace分析详情。5.确定问题并采用相应的措施展开评论点赞 - #青训营笔记创作活动#
1月1日 day17
SQL语句都诞生于客户端,主要有两种方式产生一条SQL,一种是由开发者自己手动编写,另一种则是相关的ORM框架自动生成,一般情况下,MySQL运行过程中收到的大部分SQL都是由ORM框架生成的,比如Java中的MyBatis、Hibernate框架等。一条完整的SQL就诞生了,为了SQL能够正常执行,首先会先去获取一个数据库连接对象。展开评论点赞 - #青训营笔记创作活动#
12月30日 day16
今天学习了502报错。HTTP状态码用来表示响应结果的状态,其中200是正常响应,4xx是客户端错误,5xx是服务端错误。
客户端和服务端之间加入nginx,可以起到反向代理和负载均衡的作用,客户端只管向nginx请求数据,并不关心这个请求具体由哪个服务器来处理。
后端服务端应用如果发生崩溃,nginx在访问服务端时会收到服务端返回的RST报文,然后给客户端返回502报错。502并不是服务端应用发出的,而是nginx发出的。因此发生502时,后端服务端很可能没有没有相关的502日志,需要在nginx侧才能看到这条502日志。展开评论点赞 - #青训营笔记创作活动#
12月29日 day15
今天学习了优秀后端具备的好习惯,注释尽可能全面,写有意义的方法注释,项目拆分合理的目录结构,不在循环里远程调用、或者数据库操作,优先考虑批量进行,封装方法形参,封装通用模板……评论点赞 - #青训营笔记创作活动#
12月28日 day14
今天学习了网络原理,从单机到互联:本质是通信问题,数据传输方式:电路交换、报文交换、分组交换,结点&链路(node): 从计算机、集线器,交换机、路由器。评论点赞 - #青训营笔记创作活动#
12月26日 day13
今天学习了MySQL数据库,MySQL的整体架构有了一个基本认知,了解到了MySQL数据库的基础,本质上就是基于机器物理磁盘的一个文件系统。评论点赞 - #青训营笔记创作活动#
12月24日 day12
今天学习了抓包baidu的数据包,展示了用wireshark抓包的简单操作流程。
HTTPS会对HTTP的URL和Request Body都进行加密,因此直接在filter栏进行过滤http.host == "baidu.com"会一无所获。
HTTPS握手的过程中会先通过非对称机密去交换各种信息,其中就包括3个随机数,再通过这三个随机数去生成对称机密的会话秘钥,后续使用这个会话秘钥去进行对称加密通信。如果能获得这三个随机数就能解密HTTPS的加密数据包。
三个随机数,分别是客户端随机数(client random),服务端随机数(server random)以及pre_master_key。前两个,是明文,第三个是被服务器公钥加密过的,在客户端侧需要通过SSLKEYLOGFILE去导出。展开评论点赞