mysql
文章平均质量分 66
HumorChen99
learn more and more,持续更新文章,快关注我。
展开
-
Doris使用mysql语法查询时只保留group by分组并order by排序出来的每个分组第一条记录的方法
查询结果可以看到,mysql自动帮我们每个分组只保留分组中第一条数据,而排序是等分组、where筛选完了才排序的,并不会对分组排序再取第一条。假设有个登录记录表叫 test.t_login_log,同步到doris后表名叫 ods_test_login_log。因为前面根据user_id分过组了,每个组内只有一条记录行号为1。那在MySQL中你需要先按你要排序的字段排序完,再去分组就能得到你想要的了。在标记录行序号的时候可以选择根据字段分区,根据字段排序。手动建了个模拟表并写入数据。原创 2024-09-12 15:17:55 · 286 阅读 · 0 评论 -
MySQL 7种Join的定义&图解&示范&结果(所有join类型)
笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}原创 2024-06-26 18:31:47 · 2593 阅读 · 0 评论 -
MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID等字段对应)
新建了一张表B,需要从现有的A表的拷贝一部分字段过来,他们每行有个ID字段能一 一对应,做冗余数据。UPDATE t_b INNER JOIN t_a ON t_b.id = t_a.id SET t_b.c1 = t_a.c1, t_b.c2 = t_a.c2 ;原创 2024-04-16 16:41:29 · 405 阅读 · 0 评论 -
硬核实战!mysql 错误操作整个表全部数据后如何恢复?附解决过程、思路(百万行SQL,通过binlog日志恢复)
事情起因:以为某个表里的数据都是系统配置的数据,没有用户数据,一个字段需要覆盖替换为新的url链接,直接写下了update t_xxx set xxx = ‘https://xxxxxxxxx’ ,然后执行了,执行的时候IDEA还提示这是危险操作,我思考了下不危险,这个就是要全部覆盖,然后就点击了execute确认执行,于是翻车了,等我覆盖完去看效果的时候,惊奇的发现用户数据也被覆盖了,于是去看这个表里的数据,真有用户数据,但是值得高兴的是,全被覆盖了。。。。原创 2023-12-23 03:13:54 · 1651 阅读 · 2 评论 -
Mysql 8手动终止某个事务并释放其持有的锁
是可以执行的,再去数据表看最新数据发现,刚这个事务没有提交的数据变更是没有生效的。这是由innodb的原子性保障了,要么事务提交成功,所有变更生效,要么事务未提交事务内所有变更都不生效。持有了行记录3的排它锁,且无间隙锁,锁类型是行锁,额外还获得了表锁的意向排他锁(意向跑排他锁不等于持有排它锁,只是表达一个意向,并没有持有这个表级排它锁)在mysql数据库里的information_schema.INNODB_TRX表中存储有innodb的所有事务,我们可以查看该表来查看正在进行的事务。原创 2023-10-07 23:32:46 · 1280 阅读 · 0 评论 -
Mysql SQL优化跟踪来看看是如何优化并决策使用哪个索引或者不适用索引
使用索引字段进行筛选数据时,explain查询语句发现MySQL居然没有使用索引,产生疑问,因此决定调查清楚为什么会不用索引,而是走全表扫描> 原因调查出的结果是当你要查询的数据量是连续又占整个表五分之一以上那就不会走索引了,因为顺序读取更快,这个五分之一不是绝对的,而是一个经验值,实际上还是需要SQL优化时计算走这个索引耗时和不走这个索引的耗时去比较,会使用最快的一种方式查询数据。> 原因是大概知道了,但是还是不够信服,想进一步看一下分别是多少耗时,最后判断使用了索引或者不走索引,因此我们使用优化原创 2022-12-05 16:50:21 · 882 阅读 · 0 评论 -
Mysql 查询列时 合并多列的函数COALESCE
查询时遇到需要查一周内参与了PK的主播数,而PK记录表有发起人和对方ID两列,所以需要对两列合并然后记不重复数量userId 是发起人ID,objId是PK对方ID原创 2022-12-05 14:22:21 · 526 阅读 · 0 评论