MySQL实战45讲笔记
文章平均质量分 92
only a thought
破山中贼易,破心中贼难
展开
-
MySQL实战45讲笔记(六)------给字符串字段加索引
如何在邮箱这样的字段上建立合理的索引,假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:mysql> create table SUser(ID bigint unsigned primary key,email varchar(64), ... )engine=innodb; 示例一:整个字符串建索引与字符串一部分建索引由于要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句:mysql> select f1, f2 from SUser where email原创 2021-10-21 14:16:57 · 117 阅读 · 0 评论 -
MySQL实战45讲笔记(五)------数据库锁
全局锁和表锁数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访 问规则的重要数据结构。 根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类全局锁概念全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语原创 2021-10-09 18:49:25 · 62 阅读 · 0 评论 -
MySQL实战45讲笔记(四)------索引
索引作用索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。索引的数据结构索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,所以这里也就引入了索引模型的概念。可以用于提高读写效率的数据结构很多,这里我先给你介绍三种常见、也比较简单的数据结构,它们分别是哈希表、有序数组和搜索树。哈希表哈希表是一种以键-值(key-value)存储数据的结构,我们只要输入待查找的值即key,就可以找到其对应的值即Value。哈希的思路很简单,把值放在数组里,用一个哈希函数把key换算成原创 2021-10-01 20:13:52 · 107 阅读 · 0 评论 -
MySQL实战45讲笔记(三)------事务
目录事务隔离概念实例实现方式可重复读的使用场景:事务隔离的实现(可重复读)回滚日志删除时间事务的启动方式事务隔离概念事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。MySQL是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如MySQL原生的MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一。ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离原创 2021-09-30 16:39:33 · 86 阅读 · 0 评论 -
MySQL45讲笔记(二)-------日志模块
目录查询语句的执行和MySQL日志模块查询语句更新流程重要的日志模块:redo log,引擎层引例重要的日志模块:binlog,服务层为什么有两份日志?两种日志的不同详解update语句时的内部流程两阶段提交参数设置查询语句的执行和MySQL日志模块查询语句更新流程mysql> update T set c=c+1 where ID=2;执行语句前首先数据库,连接器工作,连接数据库。在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以这条语句就会把表T上所有缓存结果都清空。这也就是原创 2021-09-29 20:49:09 · 82 阅读 · 0 评论 -
MySQL45讲笔记(一)-----MySQL基本架构
MySQL基本架构架构大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在 这一层实现,比如存储过程、触发器、视图等存储引擎层存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、 Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MyS原创 2021-09-29 19:56:17 · 88 阅读 · 0 评论