自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 FAQ运用

【代码】FAQ运用。

2025-04-27 16:44:28 412

原创 SQL语句面试50题

【代码】SQL语句面试50题。

2025-04-24 15:27:18 597

原创 创建表结构

【代码】创建表结构。

2025-04-22 17:00:54 255

原创 MySQL基本查询

1、右连接where只影向左表,所以左表(student)中不符合where条件的数据不会显示,右表study_record表内容全部显示。inner join:理解为“有效连接”,内连接:两个表的交集。

2025-04-16 14:00:00 529

原创 MySQL管理

【代码】MySQL管理。

2025-04-14 13:08:05 356

原创 MySQL查询缓存

为了提高完全相同的查询语句的响应速度,MySQL Server 会对查询语句进行 Hash 计算得到一个 Hash 值MySQL Server 不会对 SQL 做任何处理,SQL 必须完全一致 Hash 值才会一样得到 Hash 值之后,通过该 Hash 值到查询缓存中匹配该查询的结果MySQL Server 会对查询语句进行 Hash 计算得到一个 Hash 值再次查询如果 Hash 值完全一样,就算匹配了缓存如果匹配(命中),则将查询的结果集直接返回给客户端不必再解析、执行查询。

2025-04-10 13:03:00 796

原创 MySQL和Redis一致性

如果先更新MySQL成功了,再更新Redis失败了的话,后面的请求读到的都是Redis的更新前数据,并且后续的补救方案很难做。如果先更新MySQL成功了,再删除Redis失败了的话,后面的请求读到的都是Redis的删除前数据,并且后续的补救方案很难做。如果先更新MySQL成功了,还未对Redis进行删除的间隙期,这时如果请求过来,读到的都是Redis的删除前数据。如果先更新MySQL成功了,还未对Redis进行更新的间隙期,这时如果请求过来,读到的都是Redis的更新前数据。另外,重试时间间隔设置多少?

2025-04-03 13:27:35 865

原创 MySQL主从配置

【代码】MySQL主从配置。

2025-04-03 13:26:41 160

原创 MySQL主从同步

2、salve服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则。同时它也造成了一定程度的延迟,但是比全同步模式延迟要低,这个延迟最少是一个 TCP/IP 往返的时间。4、从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致。,即二进制日志中记录了操作的语句,通过这些语句在从数据库中重放来实现复制。1、master服务器将数据的改变都记录到二进制binlog日志中,这样导致复制的压力比较大,日志占用的空间大,传输带宽占用大。

2025-04-02 10:11:26 878

原创 SQL执行过程

存储引擎层和文件系统交互,支持插件式引擎,如 MyISAM 和 InnoDB。查询时,MySQL先进行 SQL 解析,再由优化器选择执行路径,最后通过存储引擎获取数据,结果返回客户端并可能缓存。

2025-04-02 10:10:07 971

原创 binlog redolog undolog

1、二进制日志(Binlog)Binlog主要用于MySQL中的复制它包括表示对数据库进行的修改的SQL语句或原始二进制数据2、重做日志(Redo Log)重做日志是事务日志的一部分,用于崩溃恢复和确保数据持久性记录了一个事务修改了那些磁盘,分别修改了那些字段那些值信息update 可能更改了多个磁盘区域的数据,数据刷到磁盘的每个扇区里无法保证原子性3、撤销日志(Undo Log)撤销日志用于存储事务修改的数据的先前图像,使回滚成为可能,确保事务一致性。

2025-04-01 11:28:31 812

原创 MySQL优化

但有极少情况下出现性能方面的考虑需要冗余索引,比如扩展已有索引而导致其变得过大,从而影响到其他使用该索引的查询。冗余索引经常发生在为表添加新索引时,比如有人新建了索引(A,B),但这个索引不是扩展已有的索引(A)索引是有按照列值顺序存储的,对于I/O密集型的范围查询要比随机从磁盘读取每一行数据的IO要少的多。冗余索引是指在相同的列上按照相同的顺序创建的相同类型的索引,应当尽量避免这种索引,发现后立即删除。如果一个索引包含或者说覆盖所有需要查询的字段的值,那么就没有必要再回表查询,这就称为覆盖索引。

2025-04-01 11:26:39 548

原创 MySQL慢查询

在连接操作中,MySQL在查询时对于每个连接的行组合,都可以从表中使用唯一索引或主键查找到一行。MySQL需要获取表中的所有列,因此无法只查询索引就能获取,还需要访问主键索引叶子节点的行数据。关联表查询,idx_film_actor_id是film_id和actor_id的联合索引。当我们运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。查询的列被索引覆盖,并且where筛选条件是索引的前导列,是性能高的表现。MySQL 会对结果使用一个外部索引排序,而不是按索引次序从表里读取行。

2025-04-01 11:24:17 758

原创 MySQL锁

MyISAM 中是不会产生死锁的,因为 MyISAM 总是一次性获得所需的全部锁,要么全部满足,要么全部等待。索引分为主键索引和非主键索引两种,如果一条 SQL 语句操作了主键索引,MySQL 就会锁定这条主键索引;如果一条 SQL 语句操作了非主键索引,MySQL 就会先锁定该非主键索引,再锁定相关的主键索引。发生死锁后,InnoDB 一般都可以检测到,并使一个事务释放锁回退,另一个获取锁完成事务。在 MySQL 中,行级锁并不是直接锁记录,而是锁索引。表级锁是数据库中一种粗粒度的锁定机制,

2025-04-01 10:09:03 587

原创 MySQL事务

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。1)事务2查询到的数据是事务1中修改但未提交的数据,但因为事务1回滚了数据。1)这是事务的最高隔离级别,通过强制事务排序,使之不可能相互冲突,就是在。2)在该隔离级别下,可以解决前面出现的脏读、不可重复读和幻读问题,但也会。2)所以事务2查询的数据是不正确的,因此出现了脏读的问题。例子:张三账户转账转出 100 元到李四的账户。,select 默认不需要加共享锁。,select 默认需要加共享锁。

2025-04-01 10:07:13 924

原创 安装MySQL

参考:https://www.runoob.com/MySQL/MySQL-install.html。

2025-04-01 10:06:15 256

原创 MVCC原理

MySQL 的 MVCC(多版本并发控制)机制用于解决读写冲突保证事务的隔离性其底层原理主要基于每行数据的版本管理和事务的快照隔离每当对行数据进行修改时,MySQL 会生成一个新的版本,而不是直接修改原有数据这是通过在每行数据中增加两个隐藏列来实现的一个是trx_id,表示修改该行的事务 ID另一个是,用于标记行是否已被删除。

2025-03-31 16:37:34 833

原创 MySQL索引

MySQL的索引类型包括B+树、聚簇索引、非聚簇索引、哈希索引和空间索引。B+树索引常用于单列、组合索引以及全文检索。其中聚簇索引将数据存储在叶子节点,非聚簇索引通过主键指针查找数据。组合索引遵循最左前缀原则。B树与B+树的区别在于数据存储结构,B+树只在叶子节点存储数据,适合范围查找。MySQL中InnoDB引擎使用聚簇索引,MyISAM则使用非聚簇索引,数据存储和索引结构不同。

2025-03-31 15:59:04 1067 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除