MySql实战45讲
文章平均质量分 84
MySql实战45讲学习记录
zh199609
这个作者很懒,什么都没留下…
展开
-
全局锁和表锁
全局锁全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个 命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包 括建表、修改表结构等)和更新类事务的提交语句全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都 select 出来存成文本。但是让整库都只读,听上去就很危险:如果你在主库上备份,那么在备份期间原创 2021-03-03 16:48:01 · 215 阅读 · 2 评论 -
3.索引
常见的索引模型是哈希表、有序数组和搜索树.1. 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可 以找到其对应的值即 Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把 key 换 算成一个确定的位置,然后把 value 放在数组的这个位置,所以哈希索引做区间查询的速度是很慢的。2. 而有序数组在等值查询和范围查询场景中的性能就都非常优秀,用二分法就可以快速得到,这个时间复杂度是 O(log(N)),。但是,在需要更新数据的时候就麻原创 2021-02-22 20:22:48 · 103 阅读 · 0 评论 -
2.事务隔离
隔离性于隔离级别ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)隔离级别读未提交(read uncommitted)一个事务还没提交时,它做的变更就能被别的事务看到读提交(read committed)一个事务提交之后,它做的变更才会被其他事务看到可重复读(repeatable read)一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他原创 2021-02-20 16:02:46 · 129 阅读 · 1 评论 -
1.一条SQL查询语句是如何执行的
1.MySql的逻辑架构图Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。每个环节应该很清晰,不翻译 2020-12-28 18:19:33 · 103 阅读 · 0 评论