小森林夏秋篇
风格上,可归为治愈类小清新文艺片。影片通过滤镜压低亮度,显得很有质感,尤其在片首,镜头追随着女主骑着自行车穿行于竹林间,一路的上坡和下坡,很有代入感,仿佛在现场。 不修边幅的女主妈不修边幅这个词可能用得不合适,但暂时也没有想到更合适的,先凑合着用吧。女主妈在片子出现的频率不高,但有一些细节。比如抽烟,吸烟率比国内要低的日本,吸烟的女生就更少了,是什么原因让她成为烟民呢?这是让人好奇的地方,相信跟
听/说到跟做到间隔一条鸿沟
听/说和做到之间差了一条鸿沟。这段时间参加研讨会,有两个现象,感受挺深的:1、给出了方法,也论述了这个方法还是什么,然后让你用这个方法来miaos
让事情变简单、容易
如何让事情变简单、容易?
PostgreSQL DBA(195) - Limit&执行计划
PostgreSQL在使用Limit但没有显示指定order by的情况下,结果可能会不一样,原因是不同的执行计划会导致返回的结果不一样。 测试脚本 -- 脚本 drop table t; create table t(id int ,c1 int,c2 int); insert into t select x,mod(x,100),x from generate_series(1,
PostgreSQL DBA(194) - Unique&NULL
Unique唯一性约束顾名思义要求值唯一,但由于NULL值什么都不是,NULL跟NULL比较的值既不是真也不是假,因此通常情况下允许多个NULL值存在。如果希望NULL也作为一个正常值来处理,在PG 15中可使用NULLS NOT DISTINCT标记 测试脚本 drop table if exists t1; create table t1(id int,c1 varchar,c2 var
PostgreSQL DBA(193) - 数据倾斜下的HashJoin
现场反馈在执行SQL时数据库进程因为内存溢出crash,经分析发现PG执行计划选用Hash Join,在数据倾斜很严重的情况会导致此问题。 下面是模拟重现:创建数据表t1和t2,数据量1个亿,在c1列上只有一个值 drop table if exists t1; drop table if exists t2; create table t1(id int,c1 varchar); cr
PostgreSQL DBA(192) - 整行模糊查询
一个数据表有N列,现给出一个值,如某一行中任一列含有该值则返回该行,通常的写法在where语句中添加每一列作为查询条件,如: og3=# create table t1(id int,c1 varchar,c2 varchar,c3 varchar); CREATE TABLE og3=# insert into t1 values(1,'c1','c2',&
治学三境界
王国维在《人间词话》中说:古今之成大事业、大学问者,必经过三种之境界:“昨夜西风凋碧树,独上高楼,望尽天涯路。” 此第一境也。“ 衣带渐宽终不悔,为伊消得人憔悴。” 此第二境也。“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。”此第三境也。 数据库治学也有三重境界:1、What?懂得数据库是什么?如PG/openGauss有什么功能?推荐:《数据库系统概念》/《PG手册》2、How? 知道数据
PostgreSQL DBA(191) - Collation
Collate的设置会影响index的使用,比如虽然数据库的Collate为A,创建索引时指定Collate为A,在查询时也不会走该Index。
PostgreSQL DBA(190) - 行大小和空间占用
出于性能的考虑,PostgreSQL在存储数据时会“对齐”从而会出现实际空间占用大于行大小的情况
Oracle vs PostgreSQL Develop(31) - Index Only Scan
本文比较了Oracle和PG在执行Index Only Scan上的异同。 众所周知,Index Only Scan在count或者在查询的投影列中只有索引列时会用到,但由于两者在MVCC等方面的实现方式不同,Oracle和PG行为表现会不太一样。
Oracle vs PostgreSQL Develop(30) - Index&Case when
本文比较了在创建索引上面,使用case when时Oracle和PG的异同. Oracle测试脚本: -- Oracle drop table t1; create table t1(id int); create unique index idx_t1_u on t1(case when id < 10 then id else null end); insert
PostgreSQL DBA(189) - PG 14 Monitoring Improvements
PostgreSQL 14对监控有所增强,包括内存上下文的使用监控和WAL活动监控 内存上下文监控查询数据字典pg_backend_memory_contexts可查看数据库的内存上下文使用情况 [local]:5014 pg14@testdb=#* select * from pg_backend_memory_contexts ORDER BY level asc,used_bytes d
PostgreSQL DBA(188) - PG 14 enable_memoize
PostgreSQL 14引入了memoize特性,通过参数enable_memoize控制,默认打开 什么是memoize简单来说,memoize意思是把先前已经“计算”得到的结果缓存起来,不需要再计算了,在NL Join中特别有用。 示例1、创建测试数据表t表j列唯一值只有5个,u表j列唯一值有20000个 testdb=# CREATE TABLE t AS testdb-# SEL
PostgreSQL DBA(187) - TCP keepalive
TCP keepalive可用于: 1、使网络连接处于活跃(相对于Idle而言)状态 2、检测在没有关闭网络连接情况下的通信中断
PostgreSQL DBA(186) - SQL Group By
在使用GROUP BY的时候,一般来说GROUP BY后跟分组列,但实际上在PG中可以在GROUP BY后跟表主键。 [local]:5014 pgmaster@testdb=# drop table t; DROP TABLE Time: 39.739 ms [local]:5014 pgmaster@testdb=# create table t(id int primary key,
What are general rules when deciding on index?
What are general rules when deciding on index?If selectivity of condition is low (almost all rows match) – there is no point in putting the column in index If you have condition that you “always&
Oracle vs PostgreSQL Develop(29) - COMMIT in PLSQL
本文比较了在存储过程中事务管理上Oracle和PG的异同. Oracle测试脚本: -- drop table if exists t1; -- create table t1(id int); set serveroutput on declare begin delete from t1; insert into t1 values(1); b
PostgreSQL DBA(185) - watch
Linux中提供了watch用于每隔n秒查看命令的输出,与PG的客户端工具结合起来可以监控数据库的活动信息。实际上PG客户端也提供了watch工具每隔n秒监控命令的输出。 OS watch [gauss2@k8s-master ~]$ gsql -r -d postgres -c "select version();"
Oracle vs PostgreSQL,研发注意事项(13) - UPDATE语句
在应用开发中,取序列号时除了利用数据库提供的sequence之外,还可以通过使用序列表,每取一个值,值加一.通常会通过函数封装该逻辑,在更新数据ID时直接set该ID等于该函数.Oracle和PG的行为不一致,需要注意.