
MySQL
文章平均质量分 81
汇聚 MySQL 相关知识!
王廷云的博客
一个热爱科学技术的人,喜欢创新,喜欢技术分享!
展开
-
【MySQL】之死锁问题及其解决方案
数据库死锁问题是我们老生常谈的问题了,在我们实际开发过程中经常会遇到,为了尽量避免出现死锁,我们需要了解出现死锁的场景。同时,如果线上出现了死锁之后怎么去分析、排查和解决,下面我就这两点介绍一下。原创 2023-12-10 20:41:58 · 2398 阅读 · 0 评论 -
【MySQL】之联合索引与最左匹配原则
最左匹配原则在我们 MySQL 开发过程中和面试过程中经常遇到,为了加深印象和理解,我在这里把 MySQL 的最左匹配原则详细的讲解一下,包括它的原理以及是否导致索引失效的场景。原创 2023-12-10 00:53:16 · 4156 阅读 · 0 评论 -
【MySQL】之 SQL 优化案例
本案例优化的目标是消除由 group by zone-id 执行语句中引入的 using temporary 与 using file-sort。MySQL的优化器证明也不是万能的。它始终坚守一个小表驱动大表原则,结果将大表 zone 调度为被驱动表,从而额外引入了 using temporary 与 using filesort 的步骤,延长的查询语句的执行时间。我们需要在特殊的场景来有条件地推翻小表驱动大表原则。引入 ICP 索引下推;选择区分度(选择率)大的列建立索引。原创 2023-06-25 11:11:25 · 971 阅读 · 0 评论 -
【MySQL】之索引与索引优化
索引(Index)是帮助MySQL高效获取数据的数据结构。索引是数据结构。索引的目的在于提高查询效率,就好像是字典一样,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要 a - z,如果我想找到Java开头的单词呢?或者Oracle开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?我们可以简单理解为排好序的快速查找结构。原创 2023-06-17 17:06:17 · 924 阅读 · 0 评论 -
【MySQL】之 MySLQ 中的四种注释
本博客介绍了 MySQL 中的四种注释,包括两种单行注释、一种多行注释,还有一种特殊内联注释。原创 2022-10-08 11:50:48 · 4130 阅读 · 1 评论 -
【MySQL】之解决数据导出问题
目录解决导出数据时中文乱码问题解决导出的ID为科学记数法的问题原创 2022-04-28 18:22:12 · 1718 阅读 · 0 评论 -
【MySQL】之安全连接问题
场景在 MySQL 5.5 版本之后,数据库的连接就需要使用 SSL 的安全连接方式,如果 MySQL 没有设置开启 SSL 的话,客户端连接 MySQL 时就会报安全连接错误:WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connec原创 2021-10-09 18:01:38 · 474 阅读 · 0 评论 -
【MySQL】之解决字符集乱码问题
本博客讲解了如何解决MySQL中出现字符集乱码的问题原创 2020-05-29 14:56:06 · 470 阅读 · 0 评论 -
【MySQL】之忘记 root 密码
关系型数据库什么是关系型数据库关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。简单来说,关系模式就是二维表格模型。关系型数据库的优势易于理解:系型二维表的结构非常贴近现实世界,二维表格,容易理解。支持复杂查询 可以用 SQL 语句方便的在一个表以及多个表之间做非常复杂的数据查询。支持事务 可靠的处理事务并且原创 2020-09-16 10:58:18 · 236 阅读 · 0 评论 -
【MySQL】之重置数据库主键 ID
对数据表操作之前先备份一下:1、备份表结构create table table_bak like table_name;2、备份表数据insert into table_bak select * from table_name;3、删除原来主键字段(如id)alter table table_name drop id;4、添加主键,自增,放在第一位alter table table_name add id int(11) primary key auto_increment first原创 2020-07-08 21:14:06 · 2502 阅读 · 0 评论 -
【MySQL】之 JSON 数据类型与操作
目录一、JSON 数据类型简介二、JSON 数据操作1、创建 JSON 字段2、插入 JSON 数据3、查询 JSON 数据4、更新 JSON 数据一、JSON 数据类型简介在 MySQL5.7.8 版本之后,MySQL 新增了一个原生的 JSON 数据类型:JSON 值将不再以字符串的形式存储,而是采用一种允许快速读取文本元素(document elements)的内部二进制(internal binary)格式;在 JSON 列插入或者更新的时候将会自动验证 JSON原创 2021-11-15 19:17:03 · 2613 阅读 · 0 评论 -
【MySQL】之 Explain 命令简介
SQL 性能问题SQL 语句执行时间长,效率低的原因可能有如下几条:查询语句写的烂索引失效(单值索引和复合索引的情况都有)关联查询太多 join服务器调优及各个参数设置(缓冲、线程等)SQL 执行顺序由于 MySQL 会对 SQL 语句进行优化的原因,我们写的 SQL 语句和数据库引擎执行时的语句可能有所不能。比如我们写的 SQL 语句为:select distinct <select_list>from <left_table> <join_t原创 2020-09-15 16:48:06 · 3058 阅读 · 0 评论 -
【MySQL】之分区、分库、分表
一、Mysql 分区1、什么是 Mysql 分区(PARTITION)如果一张表的数据量太大的话,那么 myd,myi 就会变的很大,查找数据就会变的很慢,这个时候我们可以利用 mysql 的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去。2、分区的作用逻辑数据分割提高单一的写和读应用速度提高分区范围原创 2020-09-15 22:55:56 · 1224 阅读 · 1 评论 -
【MySQL】之事务详解
一、事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的 ACID 属性。原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性;事务结束时,所有的内部数据结构(如B树索引或双向链表)也都必须是正确的。隔离性(Isolation):数据原创 2020-09-15 22:08:57 · 234 阅读 · 0 评论 -
【MySQL】之锁机制
目录锁简介表锁行锁间隙锁一、锁简介MySQL 常用引擎有 MyISAM 和 InnoDB,MyISAM 支持表锁但不支持行锁,而 InnoDB 支持行锁和表锁。相对其他数据库而言,MySQL 的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。从锁的颗粒度划分,锁的类型可以分为:表级锁:开销小、加锁快;不会出现死锁;锁定粒度大、发生锁冲突的概率最高、并发度最低;行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;页面锁:开销和加原创 2020-09-15 21:49:23 · 171 阅读 · 0 评论 -
【MySQL】之七种 Join 解析
MySQL 的七种 Join 可以归纳为如下图:其中:1、A、B 两表共有(内连接):select <select_list> from TableA A inner join TableB B on A.key=B.key;2、A、B 两表共有 + A 表全有(左连接):select <select_list> from TableA A left join TableB B on A.key=B.key;3、A、B 两表共有 + B 表全有(有连接):sele原创 2020-09-14 21:48:43 · 321 阅读 · 0 评论 -
【MySQL】之主从复制实战
一、主从复制原理主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从数据库上,然后在从数据库上对这些日志进行重新执行,从而使从数据库和主数据库的数据保持一致:MySql主库在事务提交时会把数据变更作为事件记录在二进制日志Binlog中;主库推送二进制日志文件Binlog中的事件到从库的中继日志Relay Log中,之后从库根据中继日志重做数据变更操作,通过逻辑复制来达到主库和从库的数据一致性;MySql通过三个线程来完成主从库间的数据复制,其中Binlog Dump线程跑在主库上,I/原创 2020-09-14 16:34:46 · 310 阅读 · 1 评论 -
【MySQL】之 binlog、undo log 和 redo log 详解
前言我们知道,事务的原子性指的是:一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。那 MySQL 如何保证原子性的?答案就是:undo log。MySQL 常见的 log 有:binlogundo logredo log下面我们对这三个 log 进行讲解。binlog什么是 binlogbinlog其实在日常的开发中是听得很多的,因为很多时候数据的更新就依赖着binlog。比如:我们的数据是保存在数据库里边的,现在我们对某个商品的某个字段的内容改了(数据库变更),原创 2020-09-14 15:56:47 · 671 阅读 · 0 评论 -
【MySQL】之语句执行过程分析
MySQL的语句执行过程可以表示如下:首先客户端连接MySQL的连接器,连接成功后,先到查询缓存看看,之前是不是执行过这条语句,如果能够命中就返回缓存的value;如果没有缓存则进入词法分析器对SQL语句进行词法解析语句分析完毕后进入优化器进行SQL语句优化最后交给引擎执行语句MySQL连接我们要进行查询,第一步就是先去链接数据库,那这个时候就是连接器跟我们对接。连接器负责跟客户端建立链接、获取权限、维持和管理连接。链接数据库的过程会经过TCP握手,然后身份验证,输入用户名和密码验证成原创 2020-09-14 11:05:36 · 423 阅读 · 0 评论 -
【MySQL】之 SQL 注入
☕️ 什么是SQL注入?SQL注入(SQLi)是一种注入攻击,,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。SQL注入漏洞可能会影响使用SQL数据库(如MySQL,Oracle,SQL Server或其他)的任何网站或Web应用程序。犯罪分子可能会利用它.原创 2020-06-03 09:43:32 · 407 阅读 · 0 评论 -
【MySQL】之用户管理
目录一、用户管理1、查看用户2、创建用户3、修改用户4、删除用户二、用户权限管理1、查看用户权限2、添加用户授权3、删除用户权限 一、用户管理 1、查看用户用户信息存放在 mysql 数据库下的 user 表(MySQL 服务下存在一个系统自带的 mysql 数据库)。切换到 mysql 数据库:USE mysql;查看用户名及其对应的 host:SELECT `user`, `host` FROM `user`;+---------------+-原创 2020-05-11 21:10:03 · 3096 阅读 · 0 评论 -
【MySQL】之存储引擎
目录常用存储引擎Myisam 存储引擎InnoDB 存储引擎Memory 存储引擎Archive 存储引擎存储引擎的选择常用存储引擎功能特性MyisamInnoDBMemoryArchive批量插入的速度高低高非常高支持事务支持支持外键支持锁机制表锁行锁表锁行锁存储限制256TB64TBRAM内存没有支持全文索引支持支持B树索引支持支持支持支持哈希索引支持原创 2021-08-18 16:57:19 · 149 阅读 · 0 评论 -
【MySQL】之字符集与字符序
目录一、字符集与字符序的概述二、Server 字符集与字符序三、Database 字符集与字符序四、Table 字符集与字符序五、Column 字符集与字符序六、字符集与字符序的选择一、字符集与字符序的概述在数据的存储上,MySQL 提供了不同的字符集支持,而在数据的对比操作上,则提供了不同的字符序支持。MySQL 提供了不同级别的设置,包括 server 级、database 级、table 级、column 级,可以提供非常精准的设置。1、字符集与字符序的定义:字符集(c原创 2020-04-26 18:18:39 · 1493 阅读 · 0 评论 -
【MySQL】之字段约束类型
目录1、主键约束 Primary Key2、外键约束 Foreign Key3、唯一约束 Unique4、非空约束 Not Null5、默认值 Default6、值自增 Auto_Increment7、使用 0 填充空白 Zerofill1、主键约束 Primary Key主键约束相当于:唯一约束 + 非空约束的组合,主键约束的字段不允许重复,也不允许出现空值;每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别创建;主键可以由一个列组成,也可以有多个列组成原创 2021-08-09 20:03:58 · 1296 阅读 · 0 评论 -
【MySQL】之数据类型
一、字符串数据类型符号标识类型描述CHAR1~255个字符的定长串,它的长度必须在创建时指定,否则MySQL假定为CHAR(1)VARCHAR长度可变,最多不超过255字节,如果创建时指定为VARCHAR(n),则可存储0到n个字符的变长串(n<=255)TEXT最大长度为64K的变长文本TINYTEXT与TEXT相同,但最大长度为255字节MEDIUMTEXT与TEXT相同,但最大长度为16KLONGTEXT与TEXT相同,但最大长度原创 2021-08-09 17:27:54 · 139 阅读 · 0 评论 -
【MySQL】之核心基础命令总结
目录:建库建表基础查询条件查询常见函数排序查询分组查询多表查询分页查询子查询数据库和表的管理 创建测试数据库和表-- 删除数据库DROP DATABASE IF EXISTS `employee_db`;-- 创建数据库CREATE DATABASE IF NOT EXISTS `employee_db` DEFAULT CHARACTER SET utf8;-- 使用(切换)数据库USE employee_db;-- 删除表DROP TABLE原创 2020-10-31 18:55:21 · 902 阅读 · 1 评论 -
【MySQL】之基础知识介绍
目录一、数据库相关术语二、MySQL 默认自带数据库简介三、数据库设计三范式一、数据库相关术语1、数据库(datebase)真正存放数据的地方或者容器,里面由一张张不同数据类型的数据表组成。2、DBMS(数据库管理系统,Database Manage System)操作和管理数据库的软件,我们是不能够直接操作数据库的,所有的操作都是通过DBMS来操作。没错!MySQL就是其中一种DBMS,所以,千万别说MySQL是数据库了,它是管理和操作数据库的软件而已。3、数据表(t原创 2021-08-09 17:04:59 · 175 阅读 · 0 评论