深入理解 Mysql 的锁
数据库锁的设计初衷是为了解决并发问题,根据加锁的范围,可以分为全局锁、表级锁和行锁。 全局锁顾名思义,全局锁就是对整个数据库实例加锁,执行 flush tables with read lock (FTWRL) 之后其他线程的以下语句会被阻塞:更新语句(增删改)、数据定义语句(建表、修改表结构)和...
祝君万事如意心想事成!
数据库锁的设计初衷是为了解决并发问题,根据加锁的范围,可以分为全局锁、表级锁和行锁。 全局锁顾名思义,全局锁就是对整个数据库实例加锁,执行 flush tables with read lock (FTWRL) 之后其他线程的以下语句会被阻塞:更新语句(增删改)、数据定义语句(建表、修改表结构)和...
索引就是为了提高查询效率,就像书的目录一样。 索引的常见类型索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,例如哈希表、有序数组和搜索树等。 哈希表 哈希表是一种以键-值(key-value) 存储数据的结构,我们只要输入待查找的值即key,就可以找到其对应的值即Value。哈希的思路很...
事务就是要保证一组数据库操作,要么全部成功,要么全部失败。 并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 就不支持事务,因此被InnoDB 取代。 隔离性和隔离级别什么是 ACID? ACID(Atomicity、Consistency、Isolation、Durabilty,...
mysql 的两个重要日志模块 redo log(重做日志) 和 binlog(归档日志) redo log 用于保证 crash-safe 能力。innodb_flush_log_at_trx_commit 这个参数设置成 1 的时候,表示每次事务的 redo log 都直接持久化到磁盘。这个参数...
Mysql 的基本架构图 MYSQL 的整个架构可以分为 server 层 和存储引擎层2个部分,其中 Server 层 包括: 连接器 查询缓存 分析器 优化器 执行器 server 层涵盖了 Mysql 的大多少核心服务功能以及内置函数 存储引擎层 负责数据的存储和提取其架构是插件式的,...