MySQL
文章平均质量分 76
Lionel Yee
Sometimes you have to stop thinking too much and just go where your heart takes you.
展开
-
24 | MySQL是怎么保证主备一致的?
以下内容出自《MySQL 实战 45 讲》 https://time.geekbang.org/column/article/76446。原创 2023-07-10 23:02:44 · 825 阅读 · 0 评论 -
23 | MySQL是怎么保证数据不丢的?
以下内容出自《MySQL 实战 45 讲》原创 2023-07-09 17:55:28 · 2161 阅读 · 1 评论 -
21 | 为什么我只改一行的语句,锁这么多? MySQL 加锁规则和实战分析
可重复读隔离级别遵守两阶段锁协议,所有加锁的资源,都是在事务提交或者回滚的时候才释放的。在最后的案例中,知道 next-key lock 实际上是由间隙锁加行锁实现的。如果切换到读提交隔离级别 (read-committed) 的话,就只剩下行锁的部分。其实读提交隔离级别在外键场景下还是有间隙锁,在读提交隔离级别语句执行过程中加上的行锁,在语句执行完成后,就要把“不满足条件的行”上的行锁直接释放了,不需要等到事务提交。原创 2023-07-06 23:32:32 · 273 阅读 · 0 评论 -
19 | 为什么我只查一行的语句,也执行这么慢?
以下内容出自 《MySQL 实战 45 讲》原创 2023-07-06 21:38:01 · 118 阅读 · 0 评论 -
18 | 为什么这些SQL语句逻辑相同,性能却差异巨大?
在这个例子里,放弃了树搜索功能,优化器可以选择遍历主键索引,也可以选择遍历索引 t_modified,优化器对比索引大小后发现,索引 t_modified 更小,遍历这个索引比遍历主键索引来得更快。交易编号 tradeid 这个字段上,本来就有索引,但是 explain 的结果却显示,这条语句需要走全表扫描。这是因为,tradeid 的字段类型是 varchar(32),而输入的参数却是整型,所以需要做类型转换。MySQL 中,字符串和数字做比较的话,是将字符串转换成数字。上面的语句实际上相当于。原创 2023-07-02 18:44:46 · 53 阅读 · 0 评论 -
16 | “order by”是怎么工作的?
MySQL 会给每个线程分配一块内存用于排序,称为 sort_buffer。排序时可能在内存中完成,也可能需要使用外部排序,这取决于排序所需的内存和参数 sort_buffer_size。sort_buffer_size,就是 MySQL 为排序开辟的内存(sort_buffer)的大小。如果要排序的数据量小于 sort_buffer_size,排序就在内存中完成。但如果排序数据量太大,内存放不下,则不得不利用磁盘临时文件辅助排序。原创 2023-07-02 18:20:13 · 54 阅读 · 0 评论 -
14 | count(*)这么慢,我该怎么办?
一下内容出自《MySQL 实战 45 讲》原创 2023-07-02 12:17:50 · 143 阅读 · 0 评论 -
13 | 为什么表数据删掉一半,表文件大小不变?
以下内容出自 《MySQL 实战 45 讲》原创 2023-07-01 15:36:37 · 332 阅读 · 0 评论 -
12 | 为什么我的MySQL会“抖”一下?
一下内容出自 《MySQL 实战 45 讲》原创 2023-06-29 22:33:11 · 176 阅读 · 0 评论 -
11 | 怎么给字符串字段加索引?
以下出自《MySQL 实战 45 讲》原创 2023-06-29 00:20:14 · 143 阅读 · 0 评论 -
10 | MySQL为什么有时候会选错索引?
以下内容出自《MySQL 实战 45 讲》原创 2023-06-28 23:37:18 · 193 阅读 · 0 评论 -
09 | 普通索引和唯一索引,应该怎么选择?
以下内容出自《MySQL 实战 45 讲》原创 2023-06-27 23:58:23 · 153 阅读 · 0 评论 -
08 | 事务到底是隔离的还是不隔离的?
以下内容出自《MySQL 实战 45 讲》原创 2023-06-27 23:15:22 · 194 阅读 · 0 评论 -
06、07 | 全局锁、表锁和行锁
以下内容出自《MySQL 实战 45 讲》原创 2023-06-26 23:15:46 · 120 阅读 · 0 评论 -
MySQL EXPLAIN
EXPLAIN命令是查看查询优化器如何决定执行查询的主要方法。原创 2023-06-25 22:40:43 · 295 阅读 · 0 评论 -
04 | 05 深入浅出索引
以下出自《MySQL 实战 45 讲》原创 2023-06-25 22:05:13 · 322 阅读 · 0 评论 -
03 | 事务隔离:为什么你改了我还看不见?
以下出自 《MySQL 实战 45 讲》原创 2023-06-25 20:40:06 · 144 阅读 · 0 评论 -
02 | 日志系统:一条SQL更新语句是如何执行的?
write pos 是当前记录的位置,一边写一边后移,checkpoint 是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。特点:物理日志,大小固定,循环写入,当Mysql意外宕机后,记录好的 redo log 在 Mysql 重启后可根据 redo log 中的记录继续向磁盘中写入数据,这个能力被称之为:crash-safe。2、执行器拿到引擎给的行数据,把这个值加上 1,比如原来是 N,现在就是 N+1,得到新的一行数据,再调用引擎接口写入这行新数据。原创 2023-06-24 23:43:46 · 383 阅读 · 0 评论 -
01 | 一条 SQL 查询语句是如何执行的?
以下内容出自 《MySQL 实战 45 讲》原创 2023-06-24 22:45:13 · 3419 阅读 · 1 评论 -
高性能MySQL概述
MySQL逻辑架构大多数MySQL核心功能都在第二层架构,包括查询解析、分析、优化、缓存以及所有的内置函数,所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。第三层包含了存储引擎。存储引擎负责MySQL中数据的存储与提取。但存储引擎不会去解析SQL(InnoDB是个例外,它会解析外键定义)。事务原子性(atomicity):一个事务必须被视为一个不可分割的最小工作单元。一致性(consistency):数据库总是从一个一致性状态转换到另外一个一致性的状态。隔离性(is原创 2020-12-27 23:01:28 · 1362 阅读 · 3 评论 -
MySQL学习总纲与学习资源
学习的视频是哔哩哔哩上的黑马程序员出的视频。https://www.bilibili.com/video/av15351498个人学习笔记链接:https://pan.baidu.com/s/1A9X-94TQtds8abBZqd2D2w提取码:5bhw由于博客搬家搬的会有一些问题,所以贴上原来的博客地址https://www.cnblogs.com/sun-yanglu/catego...原创 2019-07-19 10:25:28 · 151 阅读 · 0 评论 -
MYSQL 配置文件
在mysql安装目录下新建一个my.ini文件。将一下内容粘贴进去。ps:需要修改的地方basedir为你自己的安装目录datadir为你存放 数据库文件的地方[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:\Server\mysql-8.0.11-winx64# 设置mysql数据库的数据的存放目录...原创 2018-09-03 22:15:00 · 114 阅读 · 0 评论 -
MySQL数据库8(一)SQL简介
数据库简介数据库概念数据库(database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。数据库:存储数据的仓库。数据库分类网络数据库网络数据库是指把数据库技术引入到计算机网络系统中,借助于网络技术将存储于数据库中的大量信息及时发布出去,而计算机网络借助于成熟的数据库技术对网络中的各种数据进行有效管理,并实现用户与网络中的数据库进行...原创 2018-08-31 19:12:00 · 263 阅读 · 0 评论 -
MySQL数据库8(二)MySQL基本介绍
MySQL基本介绍MySQL是一个关系型数据库管理系统。1、MySQL是一种开源免费的数据库产品。2、MySQL对PHP的支持最好(wamp或者lamp)MySQL中用到的操作指令就是SQL指令。启动和停止MySQL服务MySQL是一种C/S结构:客户端和服务端服务端对应的软件:mysqld.exe,在mysql的安装目录下的bin目录中可...原创 2018-08-31 19:20:00 · 209 阅读 · 0 评论 -
MySQL数据库8(三)数据库基本操作
数据库的基本操作数据库是数据存储的最外层(最大单元)创建数据库基本语法:create database 数据库名字[库选项];--》[]代表可选参数库选项:数据库的相关属性1)字符集:charset,代表着当前数据库下所有表存储的数据默认指定的字符集(如果当前不指定,那么采用DBMS默认的字符集)2)校对集:collate,用法:cr...原创 2018-09-03 22:12:00 · 144 阅读 · 0 评论 -
MySQL数据库8(四)数据表基本操作
数据表操作创建数据表数据库中数据表的名字通常有前缀:取数据库的前两个字母加下划线,易于区分。普通创建表基本语法:create table 表名(字段名 字段类型[字段属性],字段名 字段类型[字段属性]…)[表选项]表必须放在对应的数据库下:有两种方式可以将表挂入到指定的数据库下1、在数据表名字前面加上数据库名字,用“.”号连接即可。数据库.数据表...原创 2018-09-03 22:21:00 · 348 阅读 · 0 评论 -
MySQL数据库8(五)数据基本操作
数据基础操作插入操作本质含义:将数据以SQL的形式存储到指定的数据表(字段)里面基本语法:向表中指定字段插入数据insert into 表名 [(字段列表)] values(对应字段列表)1、注意:后面(values中)对应的值列表只需要与前面的字段列表相对应即可(不一定与表结构完全一致)2、注意:字段列表并不一定非要有所有的表中字段,只要对应...原创 2018-09-03 22:26:00 · 153 阅读 · 0 评论 -
MySQL数据库8(六)字符集
字符集字符编码概念字符(character)是各种文字和符号的总称,包括各国家文字、标识符号、图形符号、数字等。在计算机中所看到的任何内容都是字符构成的。字符编码(character code)是计算机针对各种符号,在计算机中的一种二进制存储代号。字符集概念字符集(character set)是多个字符的集合,字符集种类比较多,每个字符集包含的字符个数不同。...原创 2018-09-03 22:32:00 · 580 阅读 · 0 评论 -
MySQL数据库8(七)列类型
列类型整数类型tinyint迷你整型,系统采用一个字节来保存的整型,一个字节=8byte,最大能表示的数据是0-255。smallint小整型,系统采用两个字节来保存的整型,能表示0-65535之间的整型mediumint中整型,采用三个字节来保存数据int整型,(标准整型),采用四个字节来保存数据。bigint大整型,采用八个字节来保存数据。...原创 2018-09-03 22:38:00 · 293 阅读 · 0 评论 -
MySQL数据库8(八)列属性
列属性列属性又称之为字段属性,在mysql中一共有6个属性:null,默认值,列描述,主键,唯一键和自动增长。null属性NULL属性代表字段为空如果对应的值为YES,表示该字段可以为NULL。注意:1、在设计表的时候,尽量不要让数据为空。2、MySQL的记录长度为65535字节,如果有一个表中有字段允许为NULL,那么系统就会设计保留一个字节来存储N...原创 2018-09-03 22:46:00 · 225 阅读 · 0 评论 -
MySQL数据库8(九)列属性之主键、自增长
主键顾名思义,主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性创建主键随表创建系统提供了两种增加主键的方式:1、直接在需要当做主键的字段之后,增加primary key属性来确定主键2、在所有字段之后增加primary key选项:primary key(字段信息)表后增加基本语法:alter table 表名 a...原创 2018-09-03 22:52:00 · 370 阅读 · 0 评论 -
MySQL数据库8(十)唯一键
唯一键唯一键;unique key,用来保证对应的字段中的数据唯一的。主键也可以用保证字段数据唯一性,但是一张表只有一个主键。唯一键特点:1、唯一键在一张表中可以有多个。2、唯一键允许字段数据为NULL,NULL可以有多个(NULL不参与比较)创建唯一键创建唯一键和创建主键非常类似1、直接在表字段之后增加唯一键标识符:unique[key]...原创 2018-09-03 22:54:00 · 381 阅读 · 0 评论 -
MySQL数据库8(十一)表关系
表关系表关系:表与表之间(实体)有什么样的关系,每种关系应该如何设计表结构。一对一一对一,一张表中的一条记录与另外一张表中最多有一条明确的关系,通常,此设计方案保证两张表中使用同样的主键即可。(唯一键可以为null,无法匹配)学生表: 学生ID(PRI) 姓名 年龄 性别 ...原创 2018-09-03 22:56:00 · 157 阅读 · 0 评论 -
MySQL数据库8(十二)高级数据操作
高级数据操作新增数据多数据插入只要写一次insert指令,但是可以直接插入多条记录。基本语法:insert into 表名 [(字段列表)] values(值列表),(值列表)…;主键冲突主键冲突:在有的表中,使用的是业务主键(字段有业务含义),但是往往在进行数据插入而的时候,又不能确定数据表中是否已经存在对应的主键。主键冲突的解决方...原创 2018-09-04 12:24:00 · 188 阅读 · 0 评论