摘要:发现有些开发新同学,不管遇到什么sql,都是直接left join。一直想纠正他们的这个习惯,但是没啥用,没人听。 在多表连接的单个select语句中,混合了outer join和inner join的时候,最终的结果可能并不是他们真正想要的逻辑结果。 假设有下面的表和测试数据: CREATE TA 阅读全文
PostgreSQL中的整除截断
2021-01-12 11:25 by abce, 707 阅读, 0 推荐, 收藏,
摘要:开发同学说,在自己的测试环境中,相同的数据和相同的sql,在mysql和pg中查询出来的结果却不同。问是不是他装的数据库有问题了或者sum函数用错了。 以下是测试数据: postgres=# select * from emp; empno | ename | job | mgr | hiredat 阅读全文
PostgreSQL中的not in、not exists、left join/is null
2021-01-04 16:44 by abce, 4452 阅读, 0 推荐, 收藏,
摘要:哪种方法是找出在一张表中,而不在另一张表中的记录的最佳方法呢? SELECT l.* FROM t_left l LEFT JOIN t_right r ON r.value = l.value WHERE r.value IS NULL; SELECT l.* FROM t_left l WHER 阅读全文
difference between count(1) and count(*)
2020-12-25 11:26 by abce, 220 阅读, 0 推荐, 收藏,
摘要:有些问题被问的太多次了,截几张图放着。 阅读全文
为什么PostgreSQL WAL归档很慢
2020-12-22 14:59 by abce, 744 阅读, 0 推荐, 收藏,
摘要:在客户中,经常会遇到由于大量的WAL段占据了WAL目录(pg_wal目录),导致磁盘空间使用量突然暴增的案例。慌张的客户通常会问:“为什么PostgreSQL不删除它们呢?” 我们发现最常见的原因是: 1.WAL归档失败 2.复制槽正在持有旧的WAL 然而,近些年来,在与此类似的主题下,出现了另一种 阅读全文
mysql_reset_connection()
2020-12-17 13:40 by abce, 4767 阅读, 0 推荐, 收藏,
摘要:int mysql_reset_connection(MYSQL *mysql) 清空会话状态信息,重置连接。 mysql_reset_connection()的效果和mysql_change_user()或自动重连接功能差不多;但是mysql_reset_connection()不会关闭连接后重新 阅读全文
Oracle使用audit跟踪登录失败的连接信息
2020-12-10 14:24 by abce, 564 阅读, 0 推荐, 收藏,
摘要:组A和组B对接的时候,将自己的Oracle库信息直接提供给了组B。然后各自系统都报错,提示用户名或密码错误。后台一看,数据库用户被锁定了。 组B检查了一下,发现是密码写错了,修改配置后,并在数据库中将用户解锁。 但是一段时间后,各自系统再次发生相同的错误。 组A坚持说自己的连接信息配置无误;组B再次 阅读全文
理解postgreSQL中的prepared transactions和处理孤儿(orphans)事务
2020-12-09 14:11 by abce, 3253 阅读, 1 推荐, 收藏,
摘要:Prepared transactions是PostgreSQL的一个关键特性。理解该特性提供的功能和处理任何潜在的陷阱对于系统的维护是很关键的。所以,我们来深入研究一下具体什么是prepared transactions。 关于事务 在数据库系统中,事务是一种处理通常包含多个语句的块中的全部或零个 阅读全文
explain命令可能会修改MySQL数据
2020-12-08 10:15 by abce, 487 阅读, 1 推荐, 收藏,
摘要:如果有人问你,对查询执行EXPLAIN是否可以改变你的数据库,你可能会说不会; 通常都是这么认为的。EXPLAIN应该向我们展示查询是如何执行的,而不是执行查询,因此它不能更改任何数据。 不幸的是,在这种情况下,常识并不适用于MySQL(在写这篇文章的时候,MySQL 8.0.21和以前的版本)-有 阅读全文
MySQL如何处理隐式默认值
2020-11-26 08:56 by abce, 437 阅读, 0 推荐, 收藏,
摘要:有同学说遇到了主从不一致的问题。 大概情况是,从库是用mysqldump导出导入数据的方式创建的。创建成功后,在用mysqldump验证主从的表结构是否一致的时候,发现有些表定义不一致: 从他的比较结果可以看到,在从库端,有三个列的定义中被加入了“default null”。 怀疑环境被人人为修改过 阅读全文
浙公网安备 33010602011771号