如何定位出项目中的慢SQL
在项目开发中,定位慢SQL是常见问题。可通过链路追踪工具(如SkyWalking)分析调用链耗时,精准定位慢接口及慢SQL;若无监控工具,可开启MySQL慢查询日志,配置阈值记录执行时间较长的SQL,进而优化性能。
知道什么是聚簇索引,什么是二级索引吗
聚簇索引将数据与索引存储在一起,B+树叶子节点包含整行数据,每张表仅有一个,通常为主键索引。若无主键,MySQL会选首个非空唯一索引或自动生成rowID作为聚簇索引。二级索引则分离存储,叶子节点保存主键值,可有多个。
什么是事务以及事务的四大特性
事务是数据库操作的基本单元,具备ACID四大特性:原子性、一致性、隔离性、持久性。并发事务可能引发脏读、不可重复读、幻读等问题,数据库通过不同隔离级别(如读已提交、可重复读、串行化)加以控制。MySQL默认采用可重复读级别,在保证数据一致性的同时兼顾性能,避免高隔离级别带来的性能损耗。
为什么MySQL索引结构是B+tree
MySQL采用B+树作为索引结构,因其非叶子节点仅存键和指针,使每页可存储更多键,树层级更浅,查询更快。所有数据集中于叶子节点,查询效率稳定,且叶子节点形成双向链表,支持高效范围查询。
MongoDB相关概念
MongoDB是一款高性能、无模式的文档型数据库,适用于高并发、海量数据、高扩展性场景。支持灵活的BSON格式,适用于社交、游戏、物流、物联网等应用,具备高可用、水平扩展、丰富查询等优势,是应对“三高”需求的理想选择。(238字)
微服务原理篇(XXLJOB-幂等-MySQL)
本课程涵盖XXL-JOB任务调度、幂等性解决方案及MySQL数据库核心知识。学习内容包括:掌握XXL-JOB的分布式调度优势与搭建使用,理解并实现幂等性以避免重复操作;深入MySQL存储引擎差异、索引机制(如B+树)、回表与覆盖索引原理,并熟悉SQL调优与分库分表策略,提升系统性能与数据一致性保障能力。
2.3 什么是回表查询 ?
MySQL中InnoDB引擎使用B+树作为索引结构,因非叶子节点不存数据,可存储更多键值,降低树高,提升查询效率。叶子节点存所有数据并形成双向链表,支持高效范围查询。索引分聚簇索引(数据与索引一体,每表仅一个)和二级索引(数据与索引分离)。二级索引查询需回表,即先查主键再查数据,性能较低。优化方式包括:主键查询、联合索引实现覆盖索引、使用索引下推(ICP,5.6+功能,将条件过滤下推至存储引擎层,减少回表次数),从而提升查询性能。
第四章 数据库
MySQL中char为定长字符串,空间固定但易浪费;varchar为变长字符串,节省空间但性能略低。事务是保证数据一致性的操作集合,具备ACID四大特性:原子性、一致性、隔离性、持久性。并发事务可能引发脏读、不可重复读、幻读等问题,通过不同隔离级别解决,默认为可重复读。