数据库
常见数据库技巧
Lan-Forever
这个作者很懒,什么都没留下…
展开
-
mysql实现取字段值中某个字符之前的值
例如字符串 abc/def/gh/ijk 取最后一个/之前的值即abc/def/gh实现函数:substring_index、length、replaceselect substring_index('abc/def/gh/ijk','/',length(replace('abc/def/gh/ijk','/','//'))-length('abc/def/gh/ijk'))关键点解析:length(replace('abc/def/gh/ijk','/','//'))-length('abc/原创 2021-09-30 15:16:59 · 1411 阅读 · 0 评论 -
postgresql表重建
postgresql数据库中的表需要重建,但是表被物化视图使用没法直接重建怎么办?1.创建临时表,包括表结构和索引等对象create table table_name_1(like table_name INCLUDING all);2.插入原表数据到临时表insert into table_name_1 select * from table_name;3.原表重命名为原表2alter table table_name rename to table_name_2;4.新表重.原创 2021-04-12 16:02:13 · 1348 阅读 · 0 评论 -
postgresql物化视图刷新——创新思路
postgresql物化视图刷新常见的有直接刷新refresh和增量刷新,这两种刷新思路都不满足当前业务需求,直接refresh会锁定物化视图,增量刷新局限于版本和唯一索引,经过改造提供以下新的解决思路:drop materialized view if exists view_name_ls;--创建和原物化视图相同逻辑的临时物化视图create materialized view view_name_ls as 原物化视图逻辑;--原物化视图重命名为带动态时间后缀的名称alter mat原创 2021-04-07 17:22:30 · 1711 阅读 · 0 评论 -
postgresql查询锁表pid,SQL、开始时间、执行SQL的ip地址
SELECT distinctpg_stat_get_backend_pid (S.backendid) AS pid,pg_stat_get_backend_activity_start (S.backendid) AS start_time,pg_stat_get_backend_activity (S.backendid) AS query_sql,m.client_addr as ip_addrFROM(SELECT pg_stat_get_backend_idset () AS原创 2021-04-07 17:13:07 · 1592 阅读 · 0 评论