青云博客 记录、分享

讲讲你对MVCC的理解

MVCC是一种并发控制策略,它在多个事务同时执行时,确保数据库的一致性和隔离性。MVCC通过为每个事务创建数据的不同版本,避免了锁竞争问题。 它的工作原理如下: 每条数据行都有一个隐藏的版本号或时间戳,记录该行的创建或最后修改时间。 当事务开始,它会获取一个唯一的事务ID,作为其开始时间戳。

詹学伟 Published on 2024-04-22

事务的隔离级别有哪些?(深入)

1.事务 MySQL事务是指一组数据库操作,这些操作要么全部执行成功,要么全部不执行。 如果其中任何一个操作失败,整个事务都会被回滚,即所有操作都会被撤销,数据库回到事务开始之前的状态。这样可以保证数据的一致性和完整性,避免了数据丢失或者不一致的情况。 2.事务特性 事务4大特性(ACID):原子性

詹学伟 Published on 2024-04-22

说下你对数据库事务的理解

数据库事务是指一系列数据库操作的逻辑单元,这些操作要么全部成功执行,要么全部回滚。它的目的是确保数据的一致性和完整性。事务具备4大特性,即原子性、一致性、隔离性和持久性: 原子性:事务

詹学伟 Published on 2024-04-22

事务的隔离级别有哪些

MySQL支持以下四个事务隔离级别: 读未提交:最低的隔离级别。事务可以读取到其他事务尚未提交的数据,可能会出现脏读、不可重复读和幻读问题。 读已提交:事务只能读取到已经提交的数据。但在同一事务中,多次读取同一行的数据结果可能会不一致,可能会出现不可重复读和幻读问题。 可重复读

詹学伟 Published on 2024-04-22

慢SQL你是怎么优化的?(深入)

1. SQL语句优化 1.1. 准备工作: 1.1.1. 创建student表: DROP TABLE IF EXISTS student; CREATE TABLE student ( id int(10) NOT NULL AUTO_INCREMENT COMMENT '序号', stu

詹学伟 Published on 2024-04-22

索引失效的情况有哪些

索引失效是指在使用索引进行查询时,索引无法发挥作用,导致查询性能下降。常见的导致索引失效的情况有以下几种: 不满足索引列顺序:如果查询条件中的列顺序与索引列的顺序不一致,索引可能无法被使用。例如,一个联合索引(A, B),如果查询条件只包含了B列而没有A列,那么这个索引就无法被利用。 使用函数或表达

詹学伟 Published on 2024-04-22

如何快速定位慢SQL

要查询慢SQL产生的原因,可以采取以下4个步骤: 启用慢查询日志:在MySQL配置中启用慢查询日志,这样可以记录执行时间超过阈值的查询语句。通过分析慢查询日志,可以找到执行时间较长的SQL语句。 使用EXPLAIN分析执行计划:对于慢查询的SQL语句,使用EXPLAIN命令来查看其执行计划。通过分析

詹学伟 Published on 2024-04-22

慢SQL你是怎么优化的

针对SQL慢查询,可以考虑以下一些优化措施: 优化查询语句结构:检查是否存在冗余的操作、重复的子查询、不必要的排序、大量的JOIN操作等。优化查询语句的结构和逻辑,减少不必要的数据读取和计算。 添加合适的索引:确保查询中涉及的列都有适当的索引,并且查询条件能够充分利用索引。通过使用适当的索引,提高查

詹学伟 Published on 2024-04-22

CHAR 和 VARCHAR 的区别?

CHAR和VARCHAR的区别可以总结如下: 存储方式:CHAR是固定长度的字符类型,而VARCHAR是可变长度的字符类型。 占用空间:CHAR会以固定的长度存储数据,不论实际存储的字符数目,而VARCHAR则根据实际需要的空间动态分配存储。 尾随空格:

詹学伟 Published on 2024-04-22

并发事务带来哪些问题?

并发事务可以带来以下几个问题: 脏读(Dirty Read):一个事务读取了另一个事务未提交的数据。假设事务A修改了一条数据但未提交,事务B却读取了这个未提交的数据,导致事务B基于不准确的数据做出了错误的决策。 不可重复读(Non-repeatable Read):一个事务在多次读取同一数据时,得到

詹学伟 Published on 2024-04-22
Previous Next