![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
#mysql
主要是mysql的基础知识,以及一些实战
rong742954
这个作者很懒,什么都没留下…
展开
-
9 MySQL: 普通索引和唯一索引,应该怎么选择?
普通索引和唯一索引,应该怎么选择?查询过程更新过程change buffer什么条件下可以使用 change buffer 呢更新过程chagne buffer 使用场景索引选择和实践change buffer 和 redo log假设维护一个市民系统,每个人都有个唯一的身份证号,而且业务代码也保证不会写入两个重复的身份证号。如果市民系统需要按照身份证号查姓名,就会执行类似这样的SQL语句:/...原创 2020-04-08 15:29:41 · 91 阅读 · 0 评论 -
8 MySQL:事务到底是隔离还是不隔离呢
事务到底是隔离还是不隔离呢事务的启动时机:MySQL中,有两个“视图”概念:“快照”在MVCC里是怎么工作的?更新逻辑事务的启动时机:begin/start transaction 命令并不是一个事务的起点,在执行到它们之后的第一个操作 InnoDB 表的语句,事务才真正启动。马上启动一个事务,可以使用 start transaction with consistent snapshot ...原创 2020-03-29 15:16:10 · 110 阅读 · 0 评论 -
MySQL:一条SQL查询语句是如何执行的
一条SQL查询语句是如何执行的?读书笔记-mysql基础架构Mysql 可分为Server层和存储引擎两个部分连接器查询缓存分析器优化器执行器读书笔记-mysql基础架构平时使用数据库,通常看到的都是一个整体:如下面最简单的一个查询语句:查询编号为1的用户信息mysql> select * from user where id ='1';从mysql的架构出发,看这条查询背后都有...原创 2020-03-15 16:49:03 · 95 阅读 · 0 评论 -
3 MySQL:事务隔离,为什么你改了我还看不见
事务隔离:为什么你改了我还看不见隔离性与隔离级别事务隔离的实现--以可重复读为例事务的启动方式事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现。并不是所有的引擎都支持事务,MySQL原生的MyISAM不支持事务。本文中都是以InnoDB为例来讲解的。隔离性与隔离级别 事务的ACID(Atomicity,Consistency,Isolatio...原创 2020-03-16 23:50:30 · 108 阅读 · 0 评论 -
4 MySQL:索引 1
索引 1索引的常见模型哈希表有序数组二叉搜索树InnoDB 的索引模型索引维护索引的出现是为了提高数据查询的效率,就像书的目录一样索引的常见模型哈希表 以键值对存储数据的结构。用一个hash函数把key换算成一个确切的位置,然后把value放在数组的这个位置。出现多个key值经过hash后出现同一个值,产生冲突,通过链表解决你现在维护着一个身份证信息和姓名的表,需要根据身份...原创 2020-03-16 23:55:28 · 68 阅读 · 0 评论 -
7 MySQL:行锁功过,怎么减少行锁对性能的影响?
行锁功过:怎么减少行锁对性能的影响?两阶段锁死锁和死锁检测怎么解决由这种热点行更新导致的性能问题呢?MySQL 的行锁是在引擎层由各个引擎自己实现的。并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。行锁就是针对数据表中行记录的锁两阶段锁TATBbeg...原创 2020-03-23 10:48:59 · 153 阅读 · 0 评论 -
6 MySQL:全局锁和表锁,给表加个字段怎么有这么多阻碍?
全局锁和表锁全局锁--对整个数据库实例加锁表级锁 -- 表锁、元数据锁数据库锁设计的初衷:处理并发问题。 作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。全局锁–对整个数据库实例加锁 加锁的方法: Flush tables with read lock(FTWRL),使用后,整个库会处...原创 2020-03-23 10:49:16 · 180 阅读 · 0 评论 -
MySQL:一条SQL更新语句的执行过程?
一条SQL更新语句的执行过程?redo log --InnoDB持有的日志binlog --Server层的日志两阶段提交在什么场景下,一天一备会比一周一备更有优势呢?更新一个简单的sql语句:mysql> update user set age='23' where id='1';在上一章中的查询流程,更新流程基本会走一遍。区别在于:分析器区别出这是一条更新的语句;优化器使用当...原创 2020-03-15 23:07:57 · 212 阅读 · 0 评论 -
5 MySQL:索引2
本章接着上章的内容,进行讲解。执行"select from T where k between 3 and 6",需要进行几次树的搜索,会扫描多少行?//初始化mysql> create table T (ID int primary key,k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '',index k(...原创 2020-03-17 14:40:21 · 127 阅读 · 0 评论