
mysql
文章平均质量分 72
Drizzleeeeee
这个作者很懒,什么都没留下…
展开
-
mysql processlist命令详解
最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。首先是几条常用的SQL。1、按客户端 IP 分组,看哪个客户端的链接数最多 1 selectclient_ip,count(client_ip)asclient_numfrom(selectsubstring_index(host,':',1)asclient_ipfrominformation_schema.proc...原创 2021-01-07 22:52:44 · 5805 阅读 · 0 评论 -
mysql 出现了 Waiting for table metadata lock的解决方案
在使用pt进行ddl 的时候需要创建触发器,然后在创建的过程中,出现了Waiting for table metadata lock, 下面是一些解决办法,本质是一样的,这里总结来说就是:kill 掉某些事物占用的锁,使DDL成功,然后进而不阻塞其他DML操作。 设置锁超时短些lock_wait_timeout另外可以参考以下链接:https://www.cnblogs.com/digdeep/p/4892953.html https://www.jianshu.com/p/e14c39e4.原创 2021-01-07 22:17:04 · 747 阅读 · 0 评论 -
mysql中EXISTS与IN用法比较
1、使用方式:(1)EXISTS用法select a.batchName,a.projectId from ucsc_project_batch a where EXISTS (select b.id from ucsc_project b where a.projectId = b.id)上面这条SQL的意思就是:以ucsc_project_batch为主表查询batchName与projectId字段,其中projectId字段存在于ucsc_project表中。EXISTS 会对外表ucsc_原创 2020-12-27 16:24:17 · 212 阅读 · 0 评论 -
MVCC理解
MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是,把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能.解决问题:读写不冲突,提升读写并发数 是隔离级别 RR 和RC实现隔离性的手段实现原理:隐式字段中的DB_TRX_ID(事务ID) 隐式字段中的DB_ROLL_PTR(回滚指针...原创 2020-12-06 15:53:47 · 236 阅读 · 0 评论 -
《转》Mysql加锁过程详解(1)-基本知识
1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍转载 2020-11-29 17:59:50 · 704 阅读 · 0 评论 -
《SQL中有关DQL、DML、DDL、DCL的概念与区别》
SQL(Structure Query Language)结构化查询语言是数据库的核心语言,是高级的非过程化编程语言。它功能强大,效率高,简单易学易维护。SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。SQL结构化查询语言包含6个部分1.数据查询语言(DQL: Data Query Language)数据检索语句,用于从表中获取数据。通常最常用的为保留字SELECT原创 2020-09-14 12:01:58 · 149 阅读 · 0 评论 -
mysql事务传播行为详解
事务传播行为导致的bug问题举例:请补充其他示例原创 2020-09-14 10:46:43 · 220 阅读 · 0 评论 -
MySql索引show index 释义的Collation Cardinality Packed Key Block Size Parser的含义和作用
Collation有值’A’(升序)或NULL(无分类)Cardinality官方文档的解释:An estimate of the number of unique values in the index. This is updated by running ANALYZE TABLE or myisamchk -a. Cardinality is counted based on statistics stored as integers, so the value is not...原创 2020-09-05 15:02:02 · 1192 阅读 · 0 评论 -
mysql 数据库卡死-一张表卡死其他表正常
--- 转自Healer-Jean的优快云博客前言博主在使用使用大量定时器任务对数据库操作的时候,中间接到一个任务,需要直接对库里的字段进行修改,随性使用了一个alter table name drop column 命令结果卡住了。卡住不要紧,我们可以使用命令来看看到底是哪个操作卡住了,然后将它kill掉1、开始,命令查看,是哪台服务器上运行了什么命令select id...原创 2019-12-31 16:32:17 · 1922 阅读 · 1 评论 -
MySQL的四种事务隔离级别
一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 3、隔离性(Isolation):同一时间,只允许一个事务请求同.原创 2020-09-01 14:01:25 · 138 阅读 · 1 评论 -
Spring中的@Transactional(rollbackFor = Exception.class)属性详解
序言今天我在写代码的时候,看到了。一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法;异常如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常error是一定会回滚的如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了..原创 2020-09-01 10:21:26 · 309 阅读 · 0 评论 -
MySQL去重留一
思路:1. 查询所有重复记录,保留其中id最小的一个。(根据重复条件分组,如 group by mobile,根据需求选择要保留的那一个)2. 自连接,使用重复记录条件作为连接条件(如根据手机号码去重,期望一个手机号仅对应一条记录,则使用手机号作为连接条件)3. 删除除保留的记录之外的所有记录,如选择保留ID为最小的那条记录,则删除所有大于该id的所有记录。根据思路编写的SQL:DELETE mstFROM m_staff mst LEFT JOIN (SEL...原创 2020-08-31 19:47:27 · 371 阅读 · 0 评论 -
事务隔离脏读幻读【mysql】
事务隔离级别先说什么叫做“事务隔离”,事务隔离是指多个事务同时在进行中(如果只有一个事务,那就无所谓隔离不隔离了)时,各个事务被隔离开来,相互之间的影响和事物的隔离级别有关,按照“读未提交”–>“读已提交”–>“可重复读”–>“串行化”的顺序,越往后面隔离级别越高,事务之间的影响越小。下面的内容都以这个数据表为例进行说明:id money 1 10 2 20 4 40 读未提交和脏读两个同时进行的事务A、B,A会读到B还未提交的的...原创 2020-08-13 11:21:14 · 334 阅读 · 0 评论 -
mysql 千万级表添加字段/索引
SET FOREIGN_KEY_CHECKS = 0;create table drizzle_user_bak2 like drizzle_user_bak;ALTER TABLE drizzle_user_bak2 add COLUMN baby VARCHAR(20) DEFAULT NULL;insert into drizzle_user_bak2(id,username,nickName) SELECT id,username,nickName from drizzle_user_...原创 2020-07-26 19:18:36 · 1626 阅读 · 0 评论 -
外键不推荐使用的理由及相关
外键的原理外键的 OnDelete OnUpdate可选项On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性。现在分别对他们的属性含义做个解释。ON DELETErestrict(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。no action:意思同restrict.即如果存在从数据,不允许删除主数据。cascade(级联):当在父表(即外键的来源表).原创 2020-07-26 18:22:58 · 169 阅读 · 0 评论 -
MySQL的BTREE索引和HASH索引
为什么要用索引?使用索引后减少了存储引擎需要扫描的数据量,加快查询速度 索引可以把随机I/O变为顺序I/O 索引可以帮助我们对所搜结果进行排序以避免使用磁盘临时表Mysql支持的索引类型:B-TREE索引与HASH索引,两者有不同的使用场景,下面来简单剖析下这两者的区别。CREATE TABLE act_info(id BIGINT NOT NULL AUTO_INCREMENT,act_id VARCHAR(50) NOT NULL COMMENT "活动id",act_name V原创 2020-07-12 18:57:32 · 248 阅读 · 0 评论 -
mysql显示长度和实际长度
MySQl类型关键字后面的括号内指定整数值的显示宽度(例如,INT(11))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。所以INT(1)和INT(11)默认是没有任何区别的!!!当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替。例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004。 请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临.原创 2020-07-12 18:22:13 · 1059 阅读 · 0 评论 -
【MySQL】SHOW TABLE STATUS LIKE 命令详解
mysql > SHOW TABLE STATUS LIKE ‘表名’;Name 表名称Engine 表的存储引擎类型Row_format 行的格式,可选择为 Dynamic、Fixed、Compressed 1. Dynamic 的行长度是可变的,一般包含可变长度的字段,如 Varchar 或 Blob 2. Fixed 的行长度是固定的,只包含固定长度的列,如 Char 和 Integer。 3. Compressed 的行长度只在压缩表中存在。Rows 表中的行数。对原创 2020-07-12 01:43:01 · 4830 阅读 · 0 评论