青云博客 分享、记录

如何定位慢 SQL 产生的原因(美团)

要定位慢SQL产生的原因,可以通过以下几个步骤进行排查: 使用MySQL的查询日志:可以在MySQL的配置文件中启用查询日志(query log)。启用查询日志后,MySQL会记录下执行的所有SQL语句和执行时间。通过分析查询日志,可以找到执行时间较长的SQL语句。 使用EXPLAIN分析执行计划:

詹学伟 发布于 2024-04-24

索引失效的情况有哪些(美团)

索引失效是指当使用索引进行查询时,索引无法发挥作用,导致查询性能下降。以下是一些常见的索引失效情况: 不适合的索引类型:选择不适合查询条件的索引类型,例如使用全文索引进行精确匹配查询,或者使用B树索引进行模糊匹配查询。 使用函数或表达式:在查询条件中使用函数或表达式会导致索引失效,因为索引无法利用计

詹学伟 发布于 2024-04-24

MySQL 索引底层结构为什么使用 B+树(美团)

MySQL索引底层结构使用B+树的主要原因有以下几点: 能够支持快速的查找:B+树是一种平衡多路查找树,树的高度相对较低,能够快速定位到目标数据。在具有大量数据的情况下,B+树的查找效率更高。 有序性:B+树的特点是节点上的键值是有序排列的,这使得在范围查询、排序和分组等操作中效率更高。对于MySQ

詹学伟 发布于 2024-04-24

Mysql是如何回滚事务的(美团)

MySQL使用了Undo Log(回滚日志)来实现事务的回滚操作。当一个事务需要回滚时,MySQL会根据事务的Undo Log来撤销对数据库的修改操作,将数据恢复到事务开始之前的状态。 具体的回滚过程如下: 事务回滚触发:当事务发生异常、被显式回滚或者被外部终止时,MySQL会触发事务的回滚操作。

詹学伟 发布于 2024-04-24

Mysql是如何回滚事务的(美团)

MySQL使用了Undo Log(回滚日志)来实现事务的回滚操作。当一个事务需要回滚时,MySQL会根据事务的Undo Log来撤销对数据库的修改操作,将数据恢复到事务开始之前的状态。 具体的回滚过程如下: 事务回滚触发:当事务发生异常、被显式回滚或者被外部终止时,MySQL会触发事务的回滚操作。

詹学伟 发布于 2024-04-24

MySQL 为什么 InnoDB 是默认引擎(美团)

MySQL中的InnoDB引擎是默认引擎,主要基于以下几个原因: 事务支持:InnoDB是MySQL唯一一个提供事务支持的引擎。事务是一组操作的集合,要么全部成功,要么全部失败,确保数据的一致性和可靠性。对于具有高并发读写需求的应用,如电子商务、银行等,事务的支持是非常重要的。 锁机制:InnoDB

詹学伟 发布于 2024-04-24

对 SQL 慢查询会考虑哪些优化(美团)

1、分析语句,是否加载了不必要的字段/数据。 2、分析 SQL 执行计划(explain extended),思考可能的优化点,是否命中索引等。 3、查看 SQL 涉及的表结构和索引信息。 4、如果 SQL 很复杂,优化 SQL 结构。 5、按照可能的优化点执行表结构变更、增加索引、SQL

詹学伟 发布于 2024-04-24

Mysql的可重复读解决了哪些问题

MySQL的可重复读隔离级别解决了以下几个问题: 脏读(Dirty Read):在可重复读隔离级别下,一个事务读取的数据只能是已经提交的数据,避免了脏读问题。其他未提交的事务对于当前事务是不可见的,保证读取到的数据是一致的和可靠的。 不可重复读(Non-repeatable Read):在可重复读隔

詹学伟 发布于 2024-04-24

谈谈MySQL事务隔离级别(美团)

MySQL事务隔离级别是指在并发环境下,事务之间相互隔离的程度。MySQL提供了四个事务隔离级别,分别是读未提交、读已提交、可重复读和串行化

詹学伟 发布于 2024-04-24

慢SQL问题如何排查

如果你的数据库查询变慢了,可以采取以下步骤来找出问题并解决它: 找出慢查询:首先,找出哪些数据库查询很慢。通常,这些查询会花费很长时间才能返回结果。

詹学伟 发布于 2024-04-23