大器免成

道可道,check out.

当前显示的标签为: 「PostgreSQL」的博文

使用Nginx转发PostgreSQL数据

我在Ubuntu使用的是nginx/1.18.0,默认已经启用了ngx_stream_core_module。如果没有安装可以使用 sudo apt-get install libnginx-mod-stream 安装。 修改之前先备份/etc/nginx/nginx.conf文件,然后在文件尾部,添加 stream { include /etc/nginx/tcp-enabled/*; } 新建/etc/nginx/tcp-enabled目录,把stream转发配置保存在tcp-enabled目录里。 接下来就跟添加http转发一样了: upstream pg { server 192.168.1.23:5432; } server { listen 5532 so_keepalive=on; proxy_connect_timeout 100s; proxy_timeout 300s; proxy_pass pg; } 完了保存。 sudo nginx -t sudo nginx -s reload 没报错就说明配置正常。 如果Nginx机器的IP是192.168.1.30,添加转发之后,就可以使用192.168.1.30:5532来连接PostgreSQL数据库......

PostgreSQL的Array Type

PostgreSQL的字段类型是有维度的,默认是0,如果设置了维度,就变成了数组类型 如果有张数据表,我们一般会给数据打上tag,多个tag对应一个数据,如果没有维度我们只能新建一张表,保存tag和数据对应关系。现在我们有Array Type。就可以直接使用一个字段来保存了。 CREATE TABLE "public"."posts" ( "id" int8 NOT NULL, "title" varchar(255) NOT NULL, "tags" varchar(16)[] NOT NULL ) 普通类型后面添加“[]”就转换成对应的数组类型; 插入数据使用{}包住,使用,分隔。 INSERT INTO "public"."posts" ("id", "title", "tags") VALUES (1, '内容A', '{运动,健康}'); INSERT INTO "public"."posts" ("id", "title", "tags") VALUES (2, '内容B', '{美食,健康}'); INSERT INTO "public"."posts" ("id", "title", "tags") VALUES (3, '内容C', '{运动}'); In Array查询,有ANY和ALL两个方法,ANY是里面有就行了,ALL就得全匹配了。 SELECT * FROM "posts" WHERE '运动' = ALL("tags"); 只能查到内容C,只有运动的数据。 SELECT * FROM "posts" WHERE '运动'......