数据库
心机雅
这个作者很懒,什么都没留下…
展开
-
飙车:乐观锁悲观锁
最近因为数据加锁,想起来以前面试问的乐观锁和悲观锁。在这里分享一下两个老流氓解读的过程。总结起来就是一句话,乐观锁就像是群P,大家都在玩,但是jd的只有一个。悲观锁就是,我先锁门再办事,我走了下一个再进来继续锁门办事。乐观锁往往需要借助一个独立字段,比如version(int类型)update table set field=value,version=n+1where vers...原创 2020-03-28 11:18:36 · 139 阅读 · 0 评论 -
postgres 按日分表
CREATE OR REPLACE FUNCTION auto_insert_into_tbl_partition() RETURNS trigger AS$BODY$DECLARE time_column_name text ; -- 时间字段,用时间判断日期以此分表,属于必填的 curMMDD varchar(16); -- 'YYYYMMDD'格式的字...原创 2020-01-08 10:49:44 · 403 阅读 · 0 评论 -
postgresql 按周聚合
select to_char("time"::DATE-(extract(dow from "time"::TIMESTAMP)-1||'day')::interval, 'YYYY-mm-dd') d,count(1),count(distinct username) from t_audit where sysname in %s and "time" between %s and %s...原创 2020-01-06 13:33:02 · 1004 阅读 · 0 评论 -
postgresql 根据时间补齐数据
在做系统审计访问趋势统计的时候遇到一个问题:日志的时间不是连续的,比如有2019年12月全月差三天的数据,但是在生成图表的时候必须是连续的。尤其是折线图和柱状图这种也是不能存在时间断点。最开始作为后端开发人员使用的是在逻辑代码中做补全,但是这种效率极其低下。后面发现了下面这个方法:select COALESCE(a.t, b.t) t, COALESCE(a.count_v, 0) co...原创 2020-01-06 13:16:42 · 2097 阅读 · 0 评论 -
postgresql 表名(模糊匹配)批量删除
那天分表的时候建错了,应该是按天分表,结果搞错需求搞成按小时分表了……但是表建完了,删除如果逐条删除会很麻烦,所以就需要根据表名模糊查找,之后批量删除。代码如下:DO $$DECLAREd varchar(128);BEGIN FOR d IN select 'drop table '||schemaname||'.'||tablename||';' from pg_tables w...原创 2020-01-06 11:51:00 · 2596 阅读 · 0 评论 -
postgresql 按天分表(含触发器)
本人后端开发,因为业务需求需要使用分表方式进行数据存储。结合网上的资料最后使用的以下方式:CREATE OR REPLACE FUNCTION auto_insert_into_tbl_partition() RETURNS trigger AS$BODY$DECLARE time_column_name text ; -- 父表中用于分区的时间...原创 2019-12-31 14:51:45 · 1276 阅读 · 4 评论