随笔分类 -  mysql语句

摘要:有些同学对MYSQL中两个看似相同功能的语句,在使用中感到疑惑,到底是功能重复还是各有各自的特点,我们需要弄清楚,并在合适的场合对他们加以利用。 我们通过几个操作来详细了解一下他们的使用方式和异同点 情况一, 判断当前ID 是否存在 ID = 1 的记录,如果有就更新数据,如果没有则插入记录 这里如 阅读全文
posted @ 2023-08-11 11:06 Cetus-Y 阅读(227) 评论(0) 推荐(0) 编辑
摘要:昨天,公司的某位熟悉业务和SQL的人员,着急忙慌的找我,说必须要解决一个线上的SQL的问题,发现数据对不上了,搞不定挨批事小,但数据错误事关重大。责无旁贷的赶紧和他一起分析这个SQL。 其实就是两个表,一个表中有另一个表的关联键,你可以认为是主外键关系(这里仅仅是关系,我没有说是主外键,或者绝对一一 阅读全文
posted @ 2023-08-10 16:36 Cetus-Y 阅读(426) 评论(0) 推荐(0) 编辑
摘要:《高性能MySQL》 里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的(ps.需要考虑 ICP)。MySQL优化器将in这种方式转化成 n*m 种组合进行查询,最终将返回值合并,有点类似union但是更高效。 MySQL在 阅读全文
posted @ 2023-08-01 12:01 Cetus-Y 阅读(149) 评论(0) 推荐(0) 编辑
摘要:RC级别: create table t1(id int primary key, name varchar(30));insert into t1 values(1, 'a'),(4, 'c'),(7, 'b'),(10, 'a'),(20, 'd'),(30, 'b');commit; 案例一 阅读全文
posted @ 2023-08-01 10:50 Cetus-Y 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一 前言 之前的文章里面总结了很多死锁案例,其实里面有几篇文章对于insert加锁流程表述的不准确,而且微信公众号又无法修改,所以通过本文重新梳理insert加锁流程,最后加上一个死锁案例解析。 有个勤奋好学的同事特地找我咨询insert并发导致死锁的问题,我不方便说他的名字,就叫他鲁震宇吧,本文也 阅读全文
posted @ 2023-08-01 10:43 Cetus-Y 阅读(238) 评论(0) 推荐(0) 编辑
摘要:CREATE TABLE `t8` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `d_id` varchar(40) NOT NULL DEFAULT '', `b_id` varchar(40) NOT NULL DEFAULT '', `is_dropp 阅读全文
posted @ 2023-08-01 09:21 Cetus-Y 阅读(11) 评论(0) 推荐(0) 编辑
摘要:本文目录: 一、连接相关二、长事务三、元数据锁四、锁等待五、全局读锁六、内存使用监控七、分区表八、数据库信息概览九、长时间未更新的表十、主键、索引十一、存储引擎十二、实时负载阅读提示:1)本篇文章涉及到大量 SQL 语句,在** PC 端阅读效果更佳。2)SQL 基于 Oracle MySQL 5. 阅读全文
posted @ 2021-10-11 20:32 Cetus-Y 阅读(140) 评论(0) 推荐(0) 编辑
摘要:IN和EXISTS被频繁使用在SQL中,虽然作用是一样的,但是在使用效率谁更高这点上众说纷纭。下面我们就通过一组测试来看,在不同场景下,使用哪个效率更高。 测试数据: B表: 大表,大约300000行数据CREATE TABLE `B` ( `id` int NOT NULL AUTO_INCREM 阅读全文
posted @ 2021-08-24 15:32 Cetus-Y 阅读(293) 评论(0) 推荐(0) 编辑
摘要:作者:八怪(高鹏) 中亦科技数据库专家 hu.com/p/d95bba14eddf 如何快速找到并杀掉引起事务阻塞的session。 本文主要讲述MySQL 5.7.29,也会加入和8.0的对比。 一、问题起源我们在运维MySQL的过程中,肯定多多少少遇到过Innodb row lock的问题,如果 阅读全文
posted @ 2021-06-28 11:37 Cetus-Y 阅读(131) 评论(0) 推荐(0) 编辑
摘要:【MySQL】MySQL索引 目录 索引的作用 索引种类 索引为何不可用 索引原则与误区 执行计划 测试案例 索引的作用 提高查询效率 消除数据分组/排序 避免"回表"查询 优化聚合查询 用于多表JOIN关联查询 利用唯一性约束,保证数据唯一性 InnoDB行锁实现 增加I/O成本 增加磁盘空间 不 阅读全文
posted @ 2021-04-26 10:35 Cetus-Y 阅读(92) 评论(0) 推荐(0) 编辑
摘要:背景: Innodb引擎使用B_tree结构保存表数据,这样就需要一个唯一键表示每一行记录(比如二级索引记录引用)。 Innodb表定义中处理主键的逻辑是: 1.如果表定义了主键,就使用主键唯一定位一条记录 2.如果没有定义主键,Innodb就生成一个全局唯一的rowid来定位一条记录 auto_i 阅读全文
posted @ 2020-07-08 21:12 Cetus-Y 阅读(117) 评论(0) 推荐(0) 编辑
摘要:唯一索引额外功能 为了便于说明,我们创建一个简单的表t,如下: 我在这个表的字段a上创建了唯一索引,字段b上面没有索引,表里初始化两行数据,分别是(1, 1)和(2, 1)。假设我现在要执行一个新的插入语句: 就会报错: 如果我现在要给字段b上加上一个唯一索引,可以这么执行: 同样会报错: 也就是说 阅读全文
posted @ 2020-07-07 20:52 Cetus-Y 阅读(705) 评论(0) 推荐(0) 编辑
摘要:背景 MySQL现行版本中存在一个count(distinct)语句返回结果错误的bug,表现为,实际结果存在值,但是用count(distinct)统计后返回的是0。 drop table if exists tb; set tmp_table_size=1024; create table tb 阅读全文
posted @ 2020-07-07 20:38 Cetus-Y 阅读(394) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示