![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 90
给自己一个 smile
梦想要有的,万一实现了,加油!
展开
-
评论与回复数据表设计
评论与回复数据表设计原创 2022-03-31 16:03:06 · 6251 阅读 · 18 评论 -
关注与粉丝表结构设计及查询
关注与粉丝表结构设计及查询原创 2022-03-30 17:10:09 · 2076 阅读 · 0 评论 -
居于数据库实现分布式锁
一、Redis 实现分布式锁二、Redisson 实现分布式锁三、Zookeeper 实现分布式锁四、数据库实现分布式锁原创 2021-03-10 14:15:43 · 259 阅读 · 0 评论 -
MySQL中复杂的增删改语句
目录一、INSERT 插入二、DELETE 删除三、UPDATE 修改一、INSERT 插入需求:把一个表某个字段内容复制到另一张表的某个字段表结构和插入SQL如下create TABLE table1 ( id int(11) Not null AUTO_INCREMENT, a varchar(10), b varchar(10), c varchar(10), PRIMARY KEY ("id"))ENGINE=InnoDB原创 2021-02-23 16:46:41 · 565 阅读 · 0 评论 -
MySQL中的关联查询(内连接,外连接,自连接)
目录一、创建表结构SQL和数据二、内连接查询三、左外连接查询四、右外连接是同理的,只是基准表的位置变化了而已五、全外连接六、自连接查询在使用数据库查询语句时,单表的查询有时候不能满足项目的业务需求,在项目开发过程中,有很多需求都是要涉及到多表的连接查询,总结一下mysql中的多表关联查询。一、创建表结构SQL和数据CREATE TABLE "employee" ( "id" int(11) NOT NULL AUTO_INCREMENT, "user_...原创 2021-02-23 13:10:27 · 1179 阅读 · 0 评论 -
MySQL执行语句性能优化
1. like 前导符优化like模糊查询形如'%AAA%'和'%AAA'将不会使用索引,但是业务上不可避免可能又需要使用到这种形式。通常的方法有两种:方案一:使用组合索引,即查询出的列只是用索引就可以获取,而无须查询表记录,这样也走了索引;explain select user_name from user where user_name like '%change%';方案二:使用locate函数或者position函数代替like查询,如table.field lik...原创 2021-02-22 17:43:47 · 477 阅读 · 2 评论 -
MySQL——通过EXPLAIN分析SQL的执行计划
在MySQL中,我们可以通过EXPLAIN命令获取MySQL如何执行SELECT语句的信息,包括在SELECT语句执行过程中表如何连接和连接的顺序。以下讲解是居于数据库 5.7.32 版本一 、执行计划字段描述 类型 说明 select_type 查询类型 table 输出结果集的表(表别名) partitions type 连接类型 在常用的链接类型中:system &...原创 2021-02-22 15:29:26 · 472 阅读 · 0 评论 -
面试必问的 MySQL,你懂了吗?
前言今天不整那些花里胡哨、虚头巴脑的前言了,直接进入正题怼起来。正文二狗:不多BB,先怼几道常问的大题目。MySQL 的事务隔离级别有哪些?分别用于解决什么问题?主要用于解决脏读、不可重复读、幻读。脏读:一个事务读取到另一个事务还未提交的数据。不可重复读:在一个事务中多次读取同一个数据时,结果出现不一致。幻读:在一个事务中使用相同的 SQL 两次读取,第二次读取到了其他事务新插入的行。不可重复读注重于数据的修改,而幻读注重于数据的插入。 隔离级别..转载 2021-02-20 16:44:11 · 562 阅读 · 0 评论 -
MySQL索引优化
目录一、MySQL索引基础本文主要讨论MySQL索引的部分知识。将会从MySQL索引基础、索引优化实战和数据库索引背后的数据结构三部分相关内容。一、MySQL索引基础首先,我们将从索引基础开始介绍一下什么是索引,分析索引的几种类型,并探讨一下如何创建索引以及索引设计的基本原则。此部分用于测试索引创建的user表的结构如下:desc user;1. 什么是索引?"索引(在MySQL中也叫“键key”)是存储引擎快速找到记录的一种数据结构。"——《高性能M..原创 2021-02-20 16:00:53 · 5894 阅读 · 11 评论 -
MySQL的MVCC及实现原理
一、前提概要1. 什么是MVCC?MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读什么是当前读和快照读?在学习MVCC多版本并发控制之前,我们必须先了解一下,...原创 2021-02-07 10:50:49 · 2911 阅读 · 0 评论 -
MySQL日志模块
一、简介MySQL有两大重要的日志模块:redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志,但两者记录的格式不同。二、redo logredo log: 又称(重做日志)文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在media failure时,redo log文件就能派上用场,如数据库掉电,Inn...原创 2021-02-05 13:55:56 · 1602 阅读 · 1 评论 -
MySQL5.7开启binlog日志,及数据恢复简单示例
目录一、相关命令二、开启binlog三、演示数据恢复一、相关命令 1. 查看是否开启 binlog日志(默认不开启,log_bin值为OF)及日志位置show variables like '%log_bin%'; 2. 查看产生的 日志文件。show binary logs;3. 查看当前使用的日志文件,即记录操作的最后一个日志文件show master status;4. 查看日志事件信息 ,开始、结束操作位置等show binl..原创 2021-02-05 11:24:51 · 1379 阅读 · 0 评论 -
MySQL索引底层数据结构与算法
一、MySQL数据结构几个概念索引:索引是帮助MySQL高效获取数据的排好序的数据结构I/O:从磁盘读取数据的一次操作叫做一次I/O,整个查询过程最耗费性能的步骤(检验数据结构性能)。数据页:它是InnoDB管理存储空间的基本单位,数据页是数据文件中的最小存储单元,每个数据页保存一个数据库节点。一个页的大小Mysql一般默认是16KB。聚簇索引:对于我们的数据库存储结构中,如果叶子节点保存了完整的数据,那么这个就叫做聚簇索引(一次IO查询)。非聚簇索引:对于我们的数据库存储结...原创 2021-02-04 17:02:41 · 520 阅读 · 0 评论 -
MySQL基础架构详解
目录一、引言二、MySQL基础架构图2.1 MySQL基础架构零件分析三、基础零件剖析3.1 连接器3.2 查询缓存3.3 分析器3.4 优化器3.5 执行器MySql学习专栏一、引言我们在学习MySQL的时候,迈入MySQL大门的第一步就是了解并安装MySQL客户端,随后才是使用MySQL做一系列数据库操作。但是往往被我们忽略的却是真正了解MySQL基础架构,为什么要这么说呢?因为在对数据库数据CURD操作的时候,也会出现一些问题或异常情况,...原创 2021-02-04 14:25:09 · 844 阅读 · 0 评论 -
浅谈聚簇索引和非聚簇索引的区别
聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据非聚簇索引:将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置在innodb中,在聚簇索引之上创建的索引称之为辅助索引,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引。辅助索引叶子节点存储的不再是行的物理位置,而是主键值,辅助索引访问数据总是需要二次查找。InnoDB使用的是聚簇索引,将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = 14"这样的条件查找主键,则按照B.原创 2021-01-12 09:12:17 · 315 阅读 · 0 评论