MySQL连接离奇挂死,竟不是连接池的锅……

一、背景 近期由测试反馈的问题有点多,其中关于系统可靠性测试提出的问题令人感到头疼,一来这类问题有时候属于“偶发”现象,难以在环境上快速复现;二来则是可靠性问题的定位链条有时候变得很长,极端情况下可能...
2年前
350

MySQL8新特性窗口函数详解

本文博主给大家详细讲解一波 MySQL8 的新特性:「窗口函数」,相信大伙看完一定能有所收获?。,MySQL8 窗口函数是一种特殊的函数,它可以在一组查询行上执行类似于聚合的操作,但是不会将查询行折叠...
2年前
370

mysql查询优化策略有哪些

,优化方法,1、重新定义表的关联顺序(多张表关联查询时,并不一定按照SQL中指定的顺序进行,但有一些技巧可以指定关联顺序),2、优化MIN()和MAX()函数(找某列的最小值,如果该列有索引,只需要查...
3年前
270

mysql外键约束的理解

,说明,1、外键约束使得查询需要额外访问一些别的表,这也意味着需要额外的锁。,2、可以使用触发器来代替外键,对于相关数据的同时更新外键更合适,但是如果外键只是用作数值约束,那么触发器或者显式地限制取值...
3年前
140

mysql Binlog日志是什么

,说明,1、记录了所有的DDL和DML语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。binlog的主要目的是复制...
3年前
530

mysql蠕虫复制是什么意思

,说明,1、蠕虫复制将现有表中的复制数据直接插入另一个表(同一个表),2、蠕虫复制的目标是快速增加表中的数据,实现表中的数据复制(用于数据备份或迁移),指数级增加(多用于测试),实例,以上就是mysq...
3年前
190

mysql内连接是什么

,说明,1、内部连接类似于自然连接,但内部连接不要求比较两个表的同名属性列,可以用on或using指定两个表比较的字段。,(比较的字段不要求同名)。,2、内部连接的条件可以不写,此时查询的是笛卡尔积...
3年前
260

mysql代理架构是什么

,1、概念,通过独立的中间件来统一管理所有数据源和数据分片整合,后端数据库集群对前端应用程序透明,需要独立部署和运维代理组件。,代理组件为了分流和防止单点,一般以集群形式存在,同时可能需要 Zooke...
3年前
600

mysql乐观锁如何实现

,实现方法,1、用数据版本Version记录机制实现,这是乐观锁最常用的一种实现方式。,2、数据版本,即为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 version字段来实现。当读取...
3年前
140

mysql触发器的缺陷分析

,说明,1、使用触发器实现的业务逻辑在出现问题时很难定位。,尤其是涉及多个触发器时,会使后期维护困难。,2、大量使用触发器容易导致代码结构混乱。,增加程序的复杂性。,3、如果需要更改的数据量大,触发器...
3年前
240

mysql查询缓存的原理

,1、说明,MYSQL的查询缓存本质上是缓存SQL的hash值和该SQL的查询结果,如果运行相同的SQL,服务器将直接从缓存中删除结果,不再分析、优化、最低成本的执行计划等一系列操作。,2、实例,查询...
3年前
720

mysql有哪些索引类型

,索引类型,1、主键索引字段值不能是null,也不能重复。,只能作用于一个字段(列)。,2、唯一索引字段值可以是null,但不能重复。,只能作用于一个字段。,3、普通索引可以作用于一个或多个字段,对字...
3年前
200

mysql表级锁的两种模式

,1、表共享读锁,添加共享读锁的表不会阻塞其他session的阅读请求,但会阻塞其他session的写作请求。,2、表独占写锁,独占写锁是众所周知的排他锁,会阻碍其他过程对同一表的读写操作。,只有当前...
3年前
230

mysql水平拆分是什么

,1、说明,水平拆分是通过某种战略将数据单片存储,单片存储器内的单片存储器和单片存储器两个部分,单片数据分散到不同的MySQL单片或单片存储器,达到分布式的效果,可以支持非常大的数据量。表分区本质上也...
3年前
250

mysql游标的介绍

,说明,1、游标是用来存储查询结果集的数据类型 , 在存储过程和函数中可以使用光标对结果集进行循环的处理。,2、也可以将游标称之为光标。光标的使用包括声明光标、打开光标、使用光标和关闭光标。,实例,以...
3年前
320

mysql服务器端的组件

,1、连接管理,是MySQL数据库的客户端和服务器端建立连接的管理工具。,客户端通过IP地址、端口号、用户名、密码等信息连接MySQL数据库,然后通过数据库的连接管理工具进行连接验证,确认用户名和密码...
3年前
320

mysql触发器如何使用

,说明,1、触发器也是存储过程程序的一种,而触发器内部的执行SQL语句是可以多行操作的。,2、在MySQL的存储过程程序中,要定义结束符。,语法,before/after:触发器是在增删改之前执行,还...
3年前
390

mysql事务的四个特点

,特点,1、原子性,一个事务是不可再分割的整体,要么全部被执行,要么全部执行。,2、一致性,一个事务可以让数据从一种一致状态切换到另一种状态。,3、隔离性,一个事务不受其他事务的干扰,并且多个事务彼此...
3年前
190

mysql设计字段的原则总结

,1、尽量使用整型表示字符串。,存储IP,2、定长和非定长数据类型的选择。,decimal不会失去精度,存储空间会随着数据的增大而增大。double占有固定空间,大量存储会损失精度。不定长的有varc...
3年前
170

mysql中replace函数是什么

,说明,1、可以替换字符串中的内容,直接替换数据库中某字段中的特定字符串,不再需要自己写函数去替换。,是mysql里面处理字符串比较常用的函数。,2、用于将字符串str中所有的from_str替换为t...
3年前
100

mysql蠕虫复制的使用场景

,说明,1、将一个表的数据迁移到另一个表,或者将一部分指定的数据迁移到另一个表。,2、将一个表的大量数据复制到另一个表中。,3、将一个表的数据复制到自己的表中,以产生大量的数据。,实例,以上就是mys...
3年前
90

mysql位类型如何理解

,说明,1、对BIT类型来说,用来存放位字段值,BIT(M)可用于存放多位二进制数,M范围为1~64,如果不写,默认为1位。,而且直接使用SELECT命令不会看到查询结果,需要使用bin()(二进制...
3年前
340

mysql前缀索引是什么

,1、说明,有时候需要索引很长的字符列,索引变得又大又慢,使用前缀索引,只需要索引列开始的部分字符,就能节省索引空间,提高效率。但是也会减少索引的选择。,2、语法 ,使用字段值的前10个字符建立索引...
3年前
350

mysql表分区的类型

,说明 ,1、RANGE分区将多行分配给分区。,2、LIST区域根据列值匹配离散值集中的某个值进行选择。,3、HASH分区 包括MySQL中有效、产生非负整数值的表现。,根据用户定义的表现式回归值进行...
3年前
280

mysql直方图是什么

,1、直方图是数据的分布形式。如果按姓名的字母顺序排序,可以把字母A到F开头的人放入逻辑桶。,将G到J开头的人放入另一个等等。优化器会假设数据在列中均匀分布,但实际使用时大多不均匀。,2、MySQL提...
3年前
490

mysql触发器是什么

,说明,1、触发器是MySQL向程序员和数据分析员提供保证数据完整性的方法,是与手表事件相关的特殊存储过程。,其执行不是程序调用,也不是手动启动,而是事件触发。,2、在写入数据表之前,可以强制检查或转...
3年前
90

mysql组复制的应用场景

,应用场景,1、数据库的灵活复制环境。分组复制可以灵活地增加和减少集群中的数据库实例。,2、数据库环境的高可用性。,在集群中大部分服务器可用时,组复制允许数据库实例宕机,那么整个数据库服务可用。,3...
3年前
220

mysql外连接有哪些类型

,1、左外连接将左表中要丢弃的记录保留在结果集中,右表中对应的部分用null填充。,2、右外连接,将右表中要丢弃的记录保留在结果集中,左表中对应的部分用null填充。,3、全外连接:将左表和右表中要丢...
3年前
230

mysql数据库范式是什么

,1、第一范式1NF:字段原子性,字段不可再分割。,关系型数据库,默认满足第一范式。,注意,在一对多的设计中使用逗号分隔多个外键,这种方法虽然存储方便,但不利于维护和索引。,2、第二范式:消除对主键的...
3年前
190

mysql存储过程的特点

,存储过程是一组预先编译的SQL语句的集合。编译后存储在数据库中。用户通过指定存储过程的名称并给出参数(如果存储过程中有参数)来调用和执行它。接下来我们对其特点展开探究。,特点:,1、增强SQL语言的...
3年前
80

mysql字段选择是什么

,说明,1、根据实际需要,明确所需字段名称,用英文逗号分隔。,2、获取所有字段,使用星号*匹配所有字段。,3、字段数据不一定来自数据源(select只要有结果),4、只要确保数据需求能够实现,字段的选...
3年前
290

mysql如何启动组复制

,1、创建复制用户。,2、配置新成员和捐赠者之间异步复制的复制渠道。 ,3、需要指示服务器S1引导该组,然后启动组复制。 ,这个引导程序应该只由一个服务器完成,服务器启动组只执行一次。,4、确认组复制...
3年前
270

mysql中loop语句的使用

,说明,1、loop实现了一个简单的循环,退出循环的条件需要用其他语句定义,通常可以使用leave语句实现。,2、若没有为statement_list添加退出循环的语句,则loop语句可用于实现简单的...
3年前
80

mysql limit分页过慢的解决

,1、使用表的覆盖索引加速分页查询。由于使用索引查找有优化算法,而且数据在查询索引上,不需要再去找相关的数据地址。,这样可以节省很多时间。,此外Mysql还有相关的索引缓存,在并发高的时候使用缓存效果...
3年前
150

mysql如何对数据库进行恢复

,1、备份文件中只包含表的备份,不包含库的语句时,导入时必须指定库名,目标库必须存在。,可以从备份文件mysql-user.sql引入test库。,2、如果备份文件包含完整的库信息,则在进行导入操作时...
3年前
310

mysql分析器如何理解

,说明,1、根据mysql语法写出sql后交给服务层,分析器对sql语句进行词法分析和语法分析。,2、mysql分析器使用mysql语法规则进行验证和分析查询。,例如验证是否使用错误的关键字,或者使用...
3年前
540

mysql如何查询指定字段

,说明,1、可以在SELECT语句的字段列表中指定,要查询的字段。[ ]括号代表可选的,{ }括号代表必选。,语法,2、给查询的列起别名,需要使用as关键字。 ,实例,以上就是mysql查询指定字段的...
3年前
270

mysql主键和唯一的区别

,区别,1、一个表至多有一个主键,但可以有多个唯一。,2、主键不允许为空,唯一可以为空。,3、主键创建后一定包含一个唯一性索引。,唯一性索引并不一定就是主键。,4、唯一性索引列允许空值,而主键列不允许...
3年前
80

mysql非聚簇索引的介绍

,1、说明,非聚簇索引访问需要两次索引查找(非聚集索引中叶子节点保存的行指针指向的是行的主键值),对于innodb自适应哈希索引可以减少这样的重复工作。,2、特点,(1)叶子节点内部使用name字段排...
3年前
210

mysql模块如何使用

,1、在使用之前,创建一个名为demo的数据库,同时定义一个名为demo_tabel的表操作log。,2、在开始访问前,编写一个简单的server.js代码,返回表中的数据。 ,http://loca...
3年前
140

mysql中primary key是什么

,说明,1、primary key主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。,这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。,2、效果等价于not null+uniqu...
3年前
60

mysql间歇锁是什么

,说明,1、间隙锁是Innodb在提交下为了解决幻读问题时引入的锁机制。,2、对于键值在条件范围内但并不存在的记录,在相等条件下请求给一个不存在的记录也会加锁,叫做间隙锁。,实例,以上就是mysql间...
3年前
330

mysql查询计划是什么

,1、是基于查询语句的优化器提供给服务器执行的计划内容。查询计划的方法是在查询句子之前添加EXPLAIN关键词。,2、在查询句子之前添加EXPLAIN可以看到优化器生成的查询计划。 ,跳过输出末尾以外...
3年前
80

mysql查询缓存的使用

,说明,1、打开查询缓存后,在相同的查询条件和数据的情况下,在缓存中直接返回结果。,这里的查询条件包括查询本身、现在查询的数据库、客户协议版本号等可能影响结果的信息。因此,任何两个查询在任何字符上都会...
3年前
140

mysql子查询是什么

,说明,1、出现在其他语句中的select语句,称为子查询或内查询。,2、多表关联或者表内字段关联时,或做相似功能判断时,往往会使用子查询来解决相应问题。,语法,实例 ,以上就是mysql子查询的介绍...
4年前
110

mysql组复制有什么特点

,1、高一致性。,基于本地复制和paxos协议的组复制技术,通过插件提供,提供一致的数据安全保证,2、高容错性。只要大部分节点不坏,就可以继续工作。,有自动检测机制。当不同节点发生资源冲突时,不会出错...
4年前
200

mysql读写分离的两种实现

,1、基于程序代码内部实现。根据select和insert对代码中的路由进行分类,这也是目前生产环境中应用最广泛的方法。,优点是性能好,因为在程序代码中实现,不需要增加额外的设备作为硬件支出;,缺点是...
4年前
200

别再说不懂索引了

大家好,我是小林。,面试中,MySQL 索引相关的问题基本都是一系列问题,都是先从索引的基本原理,再到索引的使用场景,比如:,索引底层使用了什么数据结构和算法?,今天就带大家,夯实 MySQL 索引的...
4年前
220

mysql常见的优化类型

,1、重新定义关联表的顺序。,数据表中的关联并不总是按照查询中指定的顺序进行,决定关联顺序是优化器的重要功能。,2、将外连接转化为内连接。,并非所有的outerjoin语句都必须以外部连接的方式执行...
4年前
510

mysql单行函数的介绍

,说明,1、单行代表每行都会处理,也就是说表有几行就处理几次。,2、用时不会改变原列表,使用时用()包裹字段,因为是函数。,3、在select之后,不仅可以跟随变量名,还可以跟随其他任意值。,实例,以...
4年前
110

mysql分区表的介绍

,说明,1、对于用户来说,分区表是一个独立的逻辑表,但底层由多个物理子表组成。,实现分区的代码实际上是通过封装一组底层表的对象,但对于SQL层来说,它是一个完全封装底层的黑盒。MySQL实现分区的方式...
4年前
430

mysql不走索引的SQL语句

,提起索引大家都不陌生,但在mysql中也有不使用索引的情况,接下来我们一起看看都有哪些不走索引的sql语句。 ,1、索引列参与表达式计算。,2、函数运算。 ,3、%词语%–模糊查询。 ,4、 字符串...
4年前
90

mysql逻辑备份有什么特点

,备份是通过查询MySQL服务器获取数据库结构和内容信息。,1、备份比物理方法慢,因为服务器必须访问数据库信息并将其转换为逻辑格式。如果输出写入客户端,服务器还必须将其发送到备份程序。,2、输出大于物...
4年前
190

mysql外连接查询如何理解

,说明,1、外连接不仅返回符合连接和查询条件的数据行,还返回一些不符合条件的行。,2、如果想把被丢弃的记录留在结果集中,需要使用外部连接查询。,在内连接查询中,不符合条件的记录将被丢弃,不会出现在结果...
4年前
140

mysql模式匹配的理解

,说明,1、MySQL提供SQL模式匹配,和一种基于类Unix里的程序。,如vi、grep和sed里的扩展正则表达式模式匹配的格式。,2、SQL模式匹配允许使用任何单个字符或任意数目字符(包括零字符...
4年前
360

mysql中concat函数的用法

,1、用于返回多个字符串连接之后的字符串。,2、如果该函数中的任何参数为NULL,返回结果为NULL。 ,3、对于字符串常量,也可直接将它们连写在一起。 ,以上就是mysql中concat函数的用法...
4年前
280

mysql光标如何使用

,说明,1、使用光标前,必须声明(定义)。,2、声明后,必须打开游标才能使用。,3、打开后,根据需要使用光标。,4、光标使用后,必须关闭。,实例,以上就是mysql光标的使用,希望对大家有所帮助。 更...
4年前
450

mysql中LIMIT分页如何优化

,优化方法,1、使用覆盖索引扫描,而不是查询所有的列。然后根据需要做一次关联查询再返回所有的列。,2、对于偏移量很大时,这样做的效率会提升非常大。,实例,以上就是mysql中LIMIT分页的优化方法...
4年前
400

mysql select的查询方法

,说明,1、在查询中,可以使用一个或多个表,在表之间使用逗号(,)分割,使用WHERE设定查询条件。,2、SELECT命令可以读取一个或多个记录。,可以用星(*)代替其他字段,SELECT语句返回表的...
4年前
190

mysql中instr()函数的使用

,说明 ,1、用于返回子串substr在字符串str中第一次出现的索引位置,没有找到子串时返回0。,2、instr()函数不区分大小写。也就是说,通过小写、大写、标题大小写等,结果总是一样的。,如果希...
4年前
310

mysql分区的应用场景

,说明,1、最佳场景数据的时间序列性较强,则可按时间进行分区。,2、如果数据有明显的热点,除了这部分数据,其他数据很少被访问,那么热点数据可以单独放在一个分区。,这样这个分区的数据就可以有机会缓存在内...
4年前
300