![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 70
柚子味儿的西瓜
这个作者很懒,什么都没留下…
展开
-
Window 10安装MySQL 5.7
5、打开C:\Windows\System32目录,找到cmd.exe,单击选中后右键,菜单中选择“以管理员身份运行”。9、重新执行5、6步骤,提示Service successfully installed.代表成功。,完成下载后,解压文件,并复制到C:\Windows\System32目录下。官方地址下载的东西没有那么多病毒~。6、bin目录下执行命令mysqld.exe -install。4、创建data目录,如上面配置的路径。10、管理员身份,bin目录下面执行。8、解决如上报错,前往下载。原创 2023-09-15 15:36:08 · 381 阅读 · 0 评论 -
行锁以及死锁的相关问题及策略
mysql的行索是在引擎实现的。但并不是所有引擎都支持行锁。不支持行锁的引擎只能使用表锁。 不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度 从两阶段锁说起 事务 B 的 update 语句会被阻塞,直到事务 A 执行 commit 之后,事务 B 才能继续执行。 事务 A 持有的两个记录的行锁,都是在 commit 的时候才释放的。 在 InnoDB 事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务原创 2020-10-30 08:59:23 · 530 阅读 · 0 评论 -
一图讲解mysql的explain操作
原创 2020-10-29 18:35:08 · 108 阅读 · 0 评论 -
一条MySQL查询语句的执行流程
一条查询SQL在MySQL中的执行经历 大体上来分,Mysql分为Server层和存储引擎层两部分 Server层 连接器 查询缓存 分析器 优化器 执行器等 以及所有的内置函数 所有跨存储引擎的功能,比如存储过程、触发器、视图等等 存储引擎 负责数据的存储和提取 插件式的架构模式,支持多个存储引擎,如InnoDB、MyISAM、Memory等 Mysql5.5.5版本之后是默认的存储引擎 Server层的整体介绍 连接器 职责:连接器负责和客户端建立链接、获取权限、维持和管理链接 1原创 2020-10-15 20:18:25 · 160 阅读 · 2 评论 -
一条MySQL更新语句的执行流程
一条更新SQL的执行流程 更新语句的整体流程 连接数据库 清空当前表对应的所有缓存 分析器分析词法和语法 优化器决定使用什么索引 执行器负责具体执行 重要的日志模块:redo log MySQL的WAL技术 全称是Write-Ahead Logging InnoDB 引擎特有的日志 先写日志,再写磁盘 详解如下: 1、当有一条记录需要更新的时候,InnoDB引擎就会把记录写到redo log里面,并且更新内存 2、InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面 redo log存储在原创 2020-10-17 16:50:40 · 480 阅读 · 2 评论 -
MySQL事务隔离:为什么你改了我还看不见
事务隔离 事务的具体含义 事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。 MySQL是一个多引擎的系统,但不是所有的引擎都支持事务。比如MyISAM就不支持事务,这也是MyISAM被InnoDB取代的重要原因之一 隔离性与隔离级别 隔离性针对的数据库事务问题 脏读 不可重复读 幻读 针对隔离性 隔离的越严实,效率就会越低 隔离级别包括: 读未提交:一个事务还没有提交,它做的变更就能被别的事务看到 读已提交:一个事务提交之后,它做的变更才会被其原创 2020-10-20 14:15:06 · 128 阅读 · 0 评论 -
深入浅出索引
深入浅出索引 索引的常见模型 哈希 有序数组 搜索树 哈希 哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的键即 key,就可以找到其对应的值即 Value。 多个 key 值经过哈希函数的换算,会出现同一个值的情况。处理这种情况的一种方法是,拉出一个链表。 因为不是有序的,所以哈希索引做区间查询的速度是很慢的。 哈希表这种结构适用于只有等值查询的场景,比如 Memcached 及其他一些 NoSQL 引擎。 有序数组 有序数组在等值查询和范围查询场景中的性能就原创 2020-10-21 21:35:56 · 160 阅读 · 0 评论 -
全局锁和表锁 :给表加个字段怎么有这么多阻碍?
根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 全局锁 全局锁就是对整个数据库实例加锁。 MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。 当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。 全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都 select 出来存成文本。原创 2020-10-21 22:45:47 · 246 阅读 · 0 评论