MySQL
文章平均质量分 90
mysql
敲代码的小小酥
上天,请赐予我平静,去接受我无法改变的;给予我勇气,去改变我能改变的;赐我智慧,分辨两者的区别
展开
-
对Mysql中redo log、undo log、binlog深入理解
redo log、binlog、undo log原创 2022-10-11 14:57:30 · 1291 阅读 · 1 评论 -
MYSQL宏观介绍
一、存储引擎介绍InnoDB 存储引擎InnoDB 是 MySQL 的默认事务型引擎,也是最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期(short-lived)事务,短期事务大部分情况是正常提交 的,很少会被回滚。InnoDB的性能和自动崩溃恢复特性,使得它在非事务型存 储的需求中也很流行。除非有非常特别的原因需要使用其他的存储引擎,否则应 该优先考虑InnoDB 引擎。MylSAM 存储引擎在 MySQL 5.1 及之前的版本,MyISAM 是默认的存储引擎。MyISAM原创 2021-10-24 11:50:24 · 149 阅读 · 1 评论 -
MYSQL字段数据类型详解
一、int类型包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT几种类型。数据类型存储空间(字节)取值范围TINYINT1有符号(signed) : [-128, 127]原创 2021-10-25 17:23:33 · 608 阅读 · 0 评论 -
MYSQL索引B+tree详解
前言二叉树、平衡树、B树做铺垫,来讲解B+tree。这里对于数据结构不做详细解释,只讲与本文有关的知识。一、二叉树首先,明确几个概念,每个树结构,只有一个根节点。最下一层,没有子节点的节点叫叶子节点,初根节点和叶子节点外的节点,叫非叶子节点。二叉树,顾名思义,就是子节点最多有两个分支的树,如下图:由二叉树定义以及图示分析得出二叉树有以下特点:1)每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。2)左子树和右子树是有顺序的,次序不能任意颠倒。3)即使树中某结点只有一棵子树,也要区分原创 2021-10-26 16:50:58 · 5240 阅读 · 0 评论 -
MYSQL索引详解
一、命名规范mysql表的命名规范: 全部小写,见名知意,不要用复数,不要用关键字。索引的命名规范: 主键索引以pk_开头,唯一索引用uk_开头,普通索引用idx_开头,后面跟索引列名称,有几个跟几个。二、主键索引(聚集索引)...原创 2021-10-27 15:03:59 · 2115 阅读 · 2 评论 -
MYSQL之explain详解
一、table单表表名,联表查询会有多条数据,一条数据table只有一个值。二、 id虽然说多表查询,explain会返回多条数据,但是,只要对应一个select,那么id就相同。即一个select,对应一个一样的id。只有多个select时,id值才有多个三、select_type每个select语句在整个sql中扮演的角色是什么。PRIMARY:主要的,就是最外层的sql查询SIMPLE:最简单的,没有子查询的sql和没用union的SUBQUERY:子查询四、ty.原创 2021-10-27 16:32:42 · 380 阅读 · 0 评论 -
MYSQL锁详解
一、共享锁(S锁)&&排它锁(X锁)S锁:一个事务获取到S锁后,其他线程也可以获取数据的S锁,但是不能获取X锁。X锁:一个事务获取到X锁后,其他事务无法获取S锁,也无法获取X锁。增删改查的加锁情况:delete:加X锁insert:一般情况不加锁update:不更新ID值,则加X锁。 更新ID值,相当于做了delete和insert操作。select:普通的select语句不加锁,select … lock in share mode可以加S锁,select for upda.原创 2021-10-28 17:30:15 · 1419 阅读 · 1 评论 -
MYSQL架构详解
前言单机版mysql容易出现单点故障,所以需要搭建多台mysql服务器,mysql架构有很多种,目的都是热备份,多活,故障切换,负载均衡、读写分离等一、主从复制架构master主节点负责写入数据,slave从节点负责读取数据。实现了读写分离。应用与读多写少的业务场景。这种架构的缺点就是只有一个master,如果挂掉了,就无法写入数据了。而且master和slave数据还有同步延迟的风险。这种架构是级联复制架构,用于解决读需求更多的业务场景。如果读压力加大,就需要更多的slave来解决,但是如果s原创 2021-10-29 14:19:39 · 3937 阅读 · 0 评论 -
MYSQL服务几个提升性能的配置
讲解几个可以提升MYSQL服务性能的配置,在my.ini或my.cnf配置文件中进行配置。这几个参数主要是减少MYSQL与磁盘的交互次数,来提升性能。减少磁盘交互的必然后果就是占用内存空间大了,这样性能才能提升。innodb_buffer_pool_size与innodb_buffer_pool_instancesinnodb_buffer_pool_size:与MyISAM不同,InnoDB使用缓冲池来缓存索引和行数据。设置的值越大,访问表中数据所需的磁盘I/O就越少。在专用数据库服务器上,您可以原创 2022-04-19 16:57:55 · 1323 阅读 · 0 评论 -
如何计算Mysql单表中能存放多少条数据
背景常听有人说,Mysql数据库单张表的数据,最多不要超过千万级别,否则需要分表处理。那这个结论是如何来的呢,是否正确呢?今天来探讨一番。一、页的结构前面讲过,Mysql在读取数据时,是一页一页的读数据,称之为预读。那页的结构到底是怎样的呢?Mysql表中的数据,在硬盘上存成了.ibd文件,这个文件,专业名词叫表空间。在.ibd文件的内部,把表数据分成了很多份的数据页,每份大小16k。类似于下图所示:每页中,不仅只有表数据,还有一些其他信息,具体如下:页头:页头占120字节大小,里面包括页号原创 2022-04-08 14:08:24 · 5679 阅读 · 0 评论 -
MySQL多表联查底层执行原理
驱动表:基表,就是Mysql先加载到内存中的那张表的数据,然后拿着这条数据去和其他表数据逐个比对。被驱动表:多表查询中除了基表,其他表都叫被驱动表。驱动表的选择在左(右)连接中,驱动表是由我们自己选择的,选择驱动表后,看where字句有没有驱动表的查询条件,有查询条件,则根据查询条件选出第一条符合条件的数据,然后拿这个数据,跟第一个被驱动表做关联查询,查询出来后,再看where字句有没有第一个被驱动表的查询条件,符合条件的留下,然后拿这条数据去查询第二个被驱动表,查询出来on的数据后,再看wher原创 2022-02-11 10:26:09 · 2530 阅读 · 2 评论