发表于: 2025-07-11 20:23:52

0 1


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)

什么是代码生成,mybatis generator代码生成是怎么实现的,还有什么办法可以生成代码?

代码生成是通过自动化工具根据规则或模板自动生成源代码的技术,主要用于减少重复工作、提高开发效率。MyBatis Generator是MyBatis官方代码生成工具,通过读取数据库元数据和配置文件,自动生成实体类、Mapper接口及XML文

件,支持命令行、Maven插件等多种运行方式。其他代码生成方法包括基于模板引擎(如FreeMarker)、注解处理器(如Lombok)、现代框架(如JHipster)、IDE内置功能以及低代码平台等。

Mysql的一般而言应该配置多大的内存, 多大的硬盘 ,多大的连接数?

MySQL配置建议:内存分配总内存的50-80%(核心是innodb_buffer_pool_size),SSD硬盘容量按数据量3倍预估并保留20%冗余,连接数(max_connections)根据公式(可用内存 - 缓冲池)/8MB计算,典型生产环境设置300-1000,需配合监控实时调整。

在端到端的请求当中,建立Http连接需要多久,Model通过JSP转成Json需要多久,Nginx调用Resin需要多久,Service访问DB需要多久,一个Sql语句执行的时间是多久。

  1. HTTP连接建立:1-10ms(受网络延迟影响,HTTPS增加2-3ms握手时间)
  2. JSP转JSON:0.5-5ms(取决于模板复杂度,现代JSON库如Jackson/Gson通常<1ms)
  3. Nginx反向代理Resin:0.1-2ms(内网调用通常<1ms,受负载均衡策略影响)
  4. Service访问DB连接池获取:0.5-3ms(已预热连接池情况下)
  5. SQL执行时间
    • 简单查询(主键/索引查询):0.1-5ms
    • 复杂查询(多表JOIN/聚合):5-100ms
    • 事务性写入:2-50ms(含日志刷盘时间)

什么是Sql注入,应该怎么解决?对于未做SQL注入防范的程序,你可以直接通过调用接口删掉表吗?

SQL注入是通过恶意输入篡改SQL语句的攻击方式,可导致数据泄露甚至删表等严重后果,必须使用参数化查询、ORM框架和输入验证等防护措施,否则攻击者确实能直接通过接口调用删除数据库表。

在内存里拼装数据会节省时间吗?如果不能,为什么要选择单表查询,而不是直接拼装成Sql语句。

内存拼装数据在跨数据源、高频简单查询或复杂业务逻辑时更快,但单表JOIN查询在低延迟网络和简单关联场景下更高效,实际选择需权衡网络开销、数据量和业务复杂度。

为什么一般而言,不允许使用连表查询,不允许使用复杂的Group By等语句,为什么不允许使用存储过程?

在分布式架构和高并发场景下,通常禁止使用联表查询、复杂Group By和存储过程,主要原因包括:联表查询在分库分表时无法路由且性能呈指数级下降(如千万级表JOIN产生万亿级计算),复杂Group By易引发内存溢出和分布式计算瓶颈(如未索引字段导致全表扫描),而存储过程则违背云原生理念、阻碍DevOps流程且性能往往不如应用层代码。替代方案包括:通过字段冗余和内存拼装避免联表(如先分片查询再批量获取关联数据)、预计算聚合结果替代实时Group By、将存储过程逻辑迁移至Service层。某电商平台实测显示,内存拼装比联表查询快3倍以上且故障率降低30倍,这反映了现代架构追求"计算靠近数据"向"计算靠近应用"的范式转变,通过牺牲少量存储空间换取可扩展性和性能提升。

为什么响应时间一般不允许超过200MS,怎么查看一个请求从发起到结束,耗费在什么地方了?

响应时间限制在200ms内是为了保障用户体验和系统稳定性,可通过全链路监控工具(如SkyWalking/Pinpoint)结合代码埋点、数据库慢查询分析和网络诊断,精确分解请求在各环节的耗时(如网络传输、服务处理、DB查询),针对性优化瓶颈点。

为什么要自测,仅仅使用Postman来测试足够吗?什么是本地测试,什么是在开发环境测试?在开发过程中,应该每天部署代码到开发环境吗,为什么?

自测是保障代码质量的第一道防线,仅用Postman无法覆盖单元测试、边界条件和并发场景等关键验证点。本地测试通过Mock和隔离环境快速验证基础逻辑,而开发环境测试则暴露真实服务交互和配置问题,两者互补不可替代。每日部署代码到开发环境能及早发现集成问题,遵循"小步快跑"原则降低修复成本,通过自动化CI/CD(如GitLab CI)实现高频可靠部署,最终形成"本地自测→自动化验证→环境部署"的完整质量闭环,这是现代敏捷开发的核心实践。

保存图片有几种方式?什么样的情景下应该使用哪一种?

  • 个人项目/测试:本地文件系统
  • 企业级应用:对象存储(S3/OSS) + CDN
  • 特殊需求:数据库(强一致性)或 HDFS(海量数据)
  • 临时图片:Redis 或第三方图床

根据 成本性能 和 运维复杂度 综合选择! 🚀

明天计划的事情:(一定要写非常细致的内容)
遇到的问题:(遇到什么困难,怎么解决的)
收获:(通过今天的学习,学到了什么知识)


返回列表 返回列表
评论

    分享到