获得徽章 1
- #青训营笔记创作活动#
2023年2月6日 day19
该文章介绍MySQL的索引机制,索引分类,索引使用与管理综述。我们都知道由于MySQL默认的查询方式,通过触发磁盘IO,对表中的数据进行逐条读取并判断。即如果要查询到的数据很多的话,意味着要触发几百万次磁盘IO才能检索到数据,这效率无疑是低效的。这时,我们可以通过MySQL的各种索引机制来提升查询数据的效率。展开评论点赞 - #青训营笔记创作活动#
2023年2月4日 day18
该文章介绍了如何自建一个数据库可视化平台。让我们在没有客户端的情况下也能方便进行数据库管理,它的SQL审核功能可以避免人员对数据库的误操作。
Bytebase是一款面向开发者的数据库变更管理工具,目前在Github上已有3.6K+Star。
它的主要特性如下:
SQL审核:具有一站式SQL审核面板,可以直观地看到数据库所有变更记录。
SQL建议:能自动检查SQL语句规范,额外提供GitHub Action和API接入方式。
SQL编辑器:可以在线管理及查看数据库表,支持语法的自动提示。
GitOps工作流:支持集成GitHub和GitLab,使用GitOps工作流进行数据库变更。
备份恢复:支持自动备份数据库及恢复数据。展开评论点赞 - #青训营笔记创作活动#
2023年2月3日 day17
本文章介绍了SQL优化思路,通过几个案例帮助大家如何去实现优化。如,1、慢查询日志记录慢SQL:explain分析SQL的执行计划profile 分析执行耗时;Optimizer Trace分析详情;确定问题并采用相应的措施;2、如何优化group by?优化方案:group by 后面的字段加索引;order by null 不用排序;尽量只使用内存临时表;使用SQL_BIG_RESULT。展开评论点赞 - #青训营笔记创作活动#
2023年1月31日 day16
本文章对SQL语句的诞生到SQL执行进行了详细说明。SQL语句都诞生于客户端,主要有两种方式产生一条SQL,一种是由开发者自己手动编写,另一种则是相关的ORM框架自动生成,一般情况下,MySQL运行过程中收到的大部分SQL都是由ORM框架生成的,比如Java中的MyBatis、Hibernate框架等。展开评论点赞 - #青训营笔记创作活动#
2023年1月30日 day15
该文章详细介绍了怎么排查502错误问题。HTTP状态码用来表示相应结果的状态,其中200是正常响应,4xx是客户端错误,5xx是服务端错误;如果发现502,优先通过监控排查服务端应用是否发生过崩溃重启,如果是的话,再看下是否留下过崩溃堆栈日志,如果没有日志,看下是否可能是oom或者是其他原因导致进程主动退出。如果进程也没崩溃过,去拍查下nginx日志,看下是否将请求打到了某个不知名IP端口上。
展开评论点赞 - #青训营笔记创作活动#
2023年1月29日 day14
本文章介绍了后端程序员应该掌握的开发好习惯。如,注释尽可能全面,写有意义的方法注释;项目拆分合理的目录结构,让项目结构更清晰,可读性更强,更容易维护;不在循环里远程调用,或者数据库操作,优先考虑批量进行;封装方法行参;封装通用模版;封装复杂的逻辑判断条件;保持优先性能的嗅觉;可变参数的配置化处理等。展开评论点赞 - #青训营笔记创作活动#
2023年1月28日 day13
该文章为我们介绍了网络原理的基本概念,增加了我们对网络原理的理解。我们可以知道计算机相互相连其数据传输方式有电路交换、报文交换、分组交换。因电路交换的缺点,我们往下对网络设计提出了两个思想,一个是转发,另一个是标识;为了解决电路交换的线多、线长缺点,我们运用了转发思想;解决多台计算机互相通信的标识问题,即为每台计算机设置唯一的物理地址-MAC地址。展开评论点赞 - #青训营笔记创作活动#
2023年1月27日 day12
该文章帮助我们对MySQL的架构理解有了较为深刻的认识。其具体架构可分为网络连接层、系统服务层、存储引擎层、以及文件系统层。除了上述四层之外,还有客户端,客户端可以是各类编程语言,如Java、Go、C/C++、Python等;也可以是一些数据库的可视化软件,如Navicat、SQLloy等;也可以是mysql-cli命令行工具。展开评论点赞 - #青训营笔记创作活动#
2023年1月26日 day11
本文章详细地介绍了为什么抓不到baidu数据包的具体原因。这是因为HTTPS协议会对host和request body进行加密,所以无法抓取。HTTPS握手过程中会通过非对称机密去交换各种信息,其中包括三个随机数,如果能获得三个随机数,就能解密HTTPS的加密数据包。三个随机数分别是客户端随机数,服务端随机数以及pre_master_key。通过设置SSLKEYLOGFILE环境变量,再让curl或chrome会请求HTTPS域名,会调用TLS库的同时导出对应的sslkey文件。文件包含三列,第二列client random用于定位,第三列pre_master_key用于解密。展开评论点赞