
数据库
文章平均质量分 75
Moshow郑锴
Powered by Core iMoshow
展开
-
DBeaver Error : Public Key Retrieval is not allowed
导致“Public Key Retrieval is not allowed”主要是由于当禁用 SSL/TLS 协议传输后,客户端会使用服务器的公钥进行传输,默认情况下客户端不会主动去找服务器拿公钥,此时就会出现上述错误。一、针对DBeaver等,可以通过驱动属性进行设置,把allowPublicKeyRetrieval设置为TRUE即可 二、针对JDBC连接场景 ,在 JDBC 连接串中加入 allowPublicKeyRetrieval=true 参数;原创 2025-03-29 23:01:52 · 728 阅读 · 0 评论 -
数据仓库和数据建模中,维度表、度量表、事实表和大宽表是什么
维度表:提供上下文信息(如时间、地点、产品等),通常包含描述性数据。度量表:主要存储用于分析的数值型数据,通常与事实表关联。事实表:存储与业务事件相关的度量数据及其与维度的关系,是数据仓库的核心。大宽表:将多个维度和事实结合在一起的扁平化数据表,以便于快速查询和多维分析。这些概念是数据仓库设计中非常重要的组成部分,有助于实现高效的数据存储和分析。原创 2024-12-06 00:00:32 · 2215 阅读 · 0 评论 -
pgsql中如何设计维度表、度量表、事实表、大宽表
在 PostgreSQL 中设计维度表、度量表、事实表和大宽表需要遵循合适的建模实践,以支持高效的查询和数据分析。通过合理的设计和优化,可以创建一个可靠和高效的数据仓库。整理 by https://zhengkai.blog.youkuaiyun.com/原创 2024-12-06 00:00:30 · 923 阅读 · 0 评论 -
PGSQL物化视图(Materialized View)
物化视图在 PostgreSQL 中是一个非常有用的特性,尤其是在处理复杂查询和大数据集时。通过将查询结果缓存到物化视图中,可以显著提高读取性能,同时减少计算的开销。合理使用物化视图可以极大地提升应用的响应速度和效率。原创 2024-11-25 22:51:59 · 1194 阅读 · 0 评论 -
PostgreSQL中表的数据量很大且索引过大时怎么办
在PostgreSQL中,当表的数据量很大且索引过大时,合理评估和优化索引、使用部分索引、复合索引、调整填充因子、定期维护、使用表分区等策略可以显著提升性能。定期监控查询性能和数据库状态,以确保优化措施的有效性。原创 2024-11-12 00:01:05 · 663 阅读 · 0 评论 -
PostgreSQL中如果有Left Join的时候索引怎么加
在PostgreSQL中处理多个LEFT JOIN和WHERE条件时,合理地添加索引可以显著提高查询性能。通过分析查询、在连接和过滤条件上创建合适的索引,并定期维护数据库,你可以改善查询的执行效率。始终在做出更改后测试性能,以确保优化措施的有效性。原创 2024-11-12 00:01:02 · 687 阅读 · 0 评论 -
pgsql表分区和表分片设计
在设计 PostgreSQL 表分区和表分片时,主要目标是提高查询性能、可扩展性和数据管理的效率。原创 2024-10-31 00:18:48 · 855 阅读 · 0 评论 -
pgsql数据量大之后可能遇到的问题
随着数据量的增加,查询可能会变得缓慢,尤其是在没有适当索引的情况下。:大型且不断扩展的数据库需要有效的存储管理,这不仅涉及确保足够的存储空间,还涉及优化数据存储方式以优化访问和降低成本。:随着数据库规模的增长,监控和分析可能变得更加复杂和缓慢,这在大规模环境中优化查询以进行分析可能是具有挑战性的。:虽然分片是处理大量客户端查询的常见策略,但设计不佳的分片系统可能会影响数据库性能并成为性能瓶颈。网络延迟是常见的性能瓶颈之一。:大表的维护,如添加列或索引,可能需要锁表,这可能会影响应用性能或导致堵塞。原创 2024-10-31 00:17:52 · 866 阅读 · 0 评论 -
PostgreSQL中查询每个账号的最新和最新前的数据
要在PostgreSQL中查询每个账号的最新和最新前的数据,我们可以使用窗口函数来实现。窗口函数允许我们对数据进行分区,然后在每个分区内执行计算。窗口函数来为每个账号的记录分配一个唯一的行号,其中最新的记录将被分配行号1,最新前的数据将被分配行号2。此外,如果你需要标记每条记录是最新记录还是最新前的数据,你可以使用。如果你的表结构不同,你需要根据实际情况调整上述查询。这个查询将返回每个账号的最新和最新前的数据,并在。列中标记每条记录是最新记录还是最新前的数据。请注意,这个查询假设。原创 2024-10-25 00:12:14 · 842 阅读 · 0 评论 -
用PgSQL查询Intraday(SQL查询每个账户的最新金额和日期)
要在 PostgreSQL 中实现从所有金额数据中筛选出每个账户的最新金额和日期,并且如果当天没有金额记录,则使用最后一次收到的金额和日期,原创 2024-10-25 00:09:07 · 517 阅读 · 0 评论 -
PgSQL之WITH Queries/Statement
在 PostgreSQL 中,WITH 子句提供了一种编写辅助语句的方法,以便在更大的查询中使用。WITH 子句有助于将复杂的大型查询分解为更简单的表单,便于阅读。这些语句通常称为通用表表达式(Common Table Express, CTE),也可以当做一个为查询而存在的临时表。WITH 子句是在多次执行子查询时特别有用,允许我们在查询中通过它的名称(可能是多次)引用它。原创 2024-04-16 00:16:16 · 2013 阅读 · 2 评论 -
PostgreSQL Error Codes (PostgreSQL错误代码)
PostgreSQL服务器发出的所有消息都分配了五个字符的错误代码, 这些代码遵循 SQL 的"SQLSTATE"代码的约定。 需要知道发生了什么错误条件的应用程序通常应该检测错误代码,而不是查看文本错误消息。 这些错误代码不太可能随着PostgreSQL的版本的更新而修改, 并且一般也不会随着错误消息的本地化而发生修改。请注意有些(但不是全部) PostgreSQL生成的错误代码是由 SQL 标准定义的; 有些标准里并没有定义的错误条件会被发明或者是从其它数据库借过来。根据标准,错误代码的头两个字符表示错原创 2024-02-18 22:24:13 · 1513 阅读 · 0 评论 -
SQL Error [42501]: ERROR: must be superuser or have privileges of the pg_read_server_files role
如果你的pgsql遇到“SQL Error [42501]: ERROR: must be superuser or have privileges of the pg_read_server_files role to COPY from a file Hint: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.”那么通常是由于你使用Copy命令导入Csv文件但是当前DB用户权限不够原创 2024-02-18 22:18:45 · 1264 阅读 · 0 评论 -
PostgreSQL之SEMI-JOIN半连接
Semi-Join半连接,当外表在内表中找到匹配的记录之后,Semi-Join会返回外表中的记录。但即使在内表中找到多条匹配的记录,外表也只会返回已经存在于外表中的记录。而对于子查询,外表的每个符合条件的元组都要执行一轮子查询,效率比较低下。此时使用半连接操作优化子查询,会减少查询次数,提高查询性能。其主要思路是将子查询上拉到父查询中,这样内表和外表是并列关系,外表的每个符合条件的元组,只需要在内表中找符合条件的元组即可,所以效率会大大提高。当参与等值JOIN的表达式存在有重复值。原创 2024-01-11 21:51:29 · 1778 阅读 · 0 评论 -
PostgreSQL DBA之数据库指标监控
此文先给PGDBA日常运维必关注的PostgreSQL指标监控SQL原创 2023-12-13 14:37:40 · 898 阅读 · 0 评论 -
MySQL数据脱敏(Data masking plugin functions)
对于企业而言,数据脱敏可以在数据共享或测试时用于保护敏感数据(如信用卡,社保卡,地址等)。通过对敏感数据进行脱敏处理,组织可以最大限度地降低数据泄露和未经授权访问的风险,同时仍能够使用真实的开发,测试和分析目的所需的数据。有很多方法进行数据脱敏,比如遮挡,替换,洗牌和加密,等等,它们适用于不同场景。本文主要聚焦「遮挡」,用特定符号 (比如 X 或) 遮挡敏感数据,这种方法可以在脱敏的同时保持原有数据感观。原创 2023-11-05 06:21:43 · 1759 阅读 · 1 评论 -
Mysql:The server time zone value 'PDT' is unrecognized
java.sql.SQLException: The server time zone value ‘PDT’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuratio...原创 2019-05-05 18:03:31 · 2728 阅读 · 2 评论 -
pg_upgrade from 9.6升级到14.5
pg_upgrade(之前被称为pg_migrator) 允许存储在PostgreSQL数据文件中的数据被升级到一个较晚 的PostgreSQL主版本而无需进行主版本升级(例如从9.5.8到9.6.4或者从10.7到11.2)通常所需的数据转储/重载。 对于次版本升级(例如从9.6.2到9.6.3或者从10.1到10.2)则不需要这个程序。原创 2023-11-05 00:06:20 · 728 阅读 · 0 评论 -
MySQL HA:如何将“删库跑路”的损失降到最低
今天主要讲了两件事儿,一是如何备份和恢复数据库中的数据,确保数据安全;二是如何来实现数据库的高可用,避免宕机停服。虽然这是两个不同的问题,但你要知道,解决这两个问题背后的实现原理是一样的。高可用依赖的是数据复制,数据复制的本质就是从一个库备份数据,然后恢复到另外一个库中去。数据备份时,使用低频度的全量备份配合 Binlog 增量备份是一种常用而且非常实用的方法,使用这种备份方法,我们可以把数据库的数据精确地恢复到历史上任意一个时刻,不仅能解决数据损坏的问题,也不用怕误操作、删库跑路这些事儿了。原创 2023-07-21 14:07:40 · 182 阅读 · 0 评论 -
teradata 9794 File system has reported ERRAMPOUTOFPHYSPACE error
如果再次发生警报,DBA必须通过限制卷轴消耗会话或通过删除数据腾出空间来在AMP上腾出空间。ERR AMP OUT OF PHY SPACE =文件系统报告了AMP物理空间耗尽的错误。对任何正在添加空间的数据库/用户的请求都会导致错误,以避免在这些边界条件下的过度使用。如果这种情况频繁发生,则DBA必须开始执行容量规划,以处理额外的空间需求。数据库文件系统组件检测到物理磁盘空间接近允许的限制的情况。如果启用了DBQL日志记录,则可以在详细捕获时禁用或减少它。例如,如果RSS日志记录可能被禁用。原创 2023-06-13 00:13:34 · 610 阅读 · 0 评论 -
MongoDB 固定集合(Capped Collections)
MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素!可以插入及更新,但更新不能超出collection的大小,否则更新失败,不允许删除,但是可以调用drop()删除集合中的所有行,但是drop后需要显式地重建集合。固定集合文档按照插入顺序储存的,默认情况下查询就是按照插入顺序返回的,也可以使用$natural调整返回顺序。是集合文档个数上线,单位是【个】原创 2023-06-12 00:24:14 · 1433 阅读 · 1 评论 -
Postgresql upgrade from version 9 to 14
Postgresql upgrade from version 9 to 14 , option A : Upgrading Data viapg_dumpall ; Option B : Upgrading Data viapg_upgrade原创 2023-06-11 23:37:55 · 1502 阅读 · 0 评论 -
postgresql行转列、列转行
postgresql列转行的思路主要是利用string_to_array。然后用unnest进行数组转换。行转列主要是用透视图crosstab相关函数。原创 2022-10-22 23:50:32 · 11896 阅读 · 1 评论 -
Redis精选问答
Redis精选热点问答:Redis底层数据结构SDS,Redis数据类型,Redis与分布式ID,Redis主从复制,Redis发布订阅与Stream,缓存穿透、缓存击穿、缓存雪崩。原创 2022-03-11 23:56:52 · 1659 阅读 · 0 评论 -
分库分表算法
假设目前有一个电商系统使用的是MySQL,要设计大数据量存储、高并发、高性能可扩展的方案,数据库中有用户表。用户会非常多,并且要实现高扩展性,应该怎么分库分表?1.Range范围 2.Hash哈希取模 3.一致性哈希原创 2022-03-26 23:20:52 · 3231 阅读 · 0 评论 -
pg_ctl: 目录 “/pgsql/data“不是一个数据库集群目录 | 致命错误: 角色 “postgres“ 不存在
运行pg_ctl start 提示不是一个数据库集群目录,以及致命错误:角色"postgres"不存在错误。原创 2022-02-05 23:55:58 · 7307 阅读 · 2 评论 -
mysql中给查询结果添加序号
前言手头有这么个需求,从一堆公司中排序选出中标单位最多的公司,并且给这些需要分数或者序列。解决方案使用变量@i=0进行设置,@i:=@i+1代表递增使用变量@i=100进行设置,@i:=@i-1代表递增(需要考虑0或者负数的情况)set @i=100;select (@i:=if(@i<1,0,@i-1)) as seq,x.* from (SELECT count(*) as number , t.bid_unit FROM unit twhere t.tag_industry原创 2021-08-17 00:13:43 · 1222 阅读 · 1 评论 -
postgreSQL数据库备份和恢复(pg_dump和pg_restore)
前言最近有个BRETT的任务,需要使用pg_dump和pg_restore来备份和恢复PROD的QLIK SENSE repository database ,目标版本postgress 9.6 (其实教程是通用的,无论9.6或者11 12 23).逻辑备份一般用pg_dump或者pg_dumpall–pg_dumpall将数据库集群全部逻辑转储到一个文件中。–pg_dump命令可以选择一个数据库或部分表进行备份。像我们的需求是备份指定的Qlik Sense QSR数据库而不需要LOG数据库,则选择原创 2021-06-14 11:52:30 · 6269 阅读 · 2 评论 -
Mysql Multiple-Column Indexes(Mysql多重索引)
前言复习的灵感来自某天不小心划过跳到了mysql官方文档中,发现官方文档中其实对于Multiple-Column Indexes 也就是多重索引 中有所提及。总结就是:mysql多列索引是顺序索引,倒序或者跳序都无效。。。假设有`index(a,b,c)`,也就是可以仅使用第一个`a`,或者`a+b`,或者`a+b+c`,使用'b'或者'b+c`或者'b+c+a'或者'c+b+a'都是无效的。原创 2021-01-17 00:51:23 · 1015 阅读 · 0 评论 -
mysql: Data truncated for column ‘id‘ at row 1
前言今天在update数据的时候遇到了一个奇怪的错误,我从一些数据中select并create table到另一个表,然后执行双表update操作,然后就遇到一下问题:Caused by: java.sql.SQLException: Data truncated for column 'id' at row 1create table enterprise_import_tier2 as ( select REPLACE(GROUP_CONCAT(u.bid_enterprise,';'原创 2021-01-08 22:45:09 · 9467 阅读 · 0 评论 -
mysql截取字符串(SUBSTRING_INDEX)
前言手头有fix的任务,需要在mysql中,根据某个url截取部分字符串作为openId,url格式为xxxx.com/202012/t20201216_15360838.html,截取其中的t20201216_15360838出来作为openId,截取202012作为yyyy-mm的日期格式。解决方案1.mysql截取 / 和 . 中间的字符作为openIdSUBSTRING_INDEX(u.url,’/’,-1) 为根据 / 进行截取,获取后面的字符串SUBSTRING_INDEX(u.ur原创 2020-12-16 20:48:41 · 965 阅读 · 0 评论 -
mysql之关联删除(b表删除a表)
前言:除了上次的mysql关联更新之外,删除也可以是关联删除的。SQL实战:蹩脚的语句如下:delete unit_detail ud where ud.unit_id in (select x.unit_id from unit x where x.fix_flag=5;);改进版的关联删除语句:delete a from unit_detail as a inner join unit as b where a.unit_id=b.unit_id and b.fix_flag=5;原创 2020-11-27 00:33:47 · 2068 阅读 · 0 评论 -
mysql之关联更新(update join,用b表更新a表记录)
前言发现之前并没有整理过mysql表关联更新,这里补上。有时候我们需要用b表去更新a表的记录,如果只有一个字段那通常我们可能就update set a.xxx=(select b.xxx from b where a.ib.id) ,但是字段一多,显得就不是特别方便了,加上不好做限制,所以就了update join。解决思路主表CREATE TABLE `unit` ( `unit_id` int(11) NOT NULL AUTO_INCREMENT, `price` decimal(10原创 2020-11-19 14:02:54 · 46494 阅读 · 4 评论 -
Mysql移除重复记录实战
前言这是一次mysql移除重复记录实战,想起来之前并没有share过,所以整理一下发上来大家参考。假设有company表:company_name+price为判断重复条件,也就是 group by 并 having count(*)>1 的条件需要保留最大company_id(也就是移除最小company_id的记录)有些记录不止重复了一两条,可能上百条,多次执行移除重复记录,最后手工筛查过多重复的实战记录纯SQL,供参考。############################原创 2020-11-15 23:28:21 · 473 阅读 · 0 评论 -
MySql行转列实战(根据符号分割并分行展示)
前言最近有个爬虫系统,需要针对抓取下来的信息中的单位进行处理,而单位是通过分号连接的字符串,例如xxx公司;xxx公司。在mysql中根据符号;进行分割,并分行展示。解决方案其中title是信息标题,company是公司名称。(基于真实项目实战,字段做了处理)select t.title,t.company from xxx tSELECT a.title,SUBSTRING_INDEX( SUBSTRING_INDEX( a.company, ';', b.help_topic_i原创 2020-11-15 12:10:55 · 3782 阅读 · 0 评论 -
mysql中text和blob的长度
# text类型用来存储大量的文本数据,比较常见的类型。与Char、VarChat相比,text`不可以有默认值`。【一般普通文本建议用 `Text`,65K】【保存网页需要用到 `MediumText`,最大16M】# BLOB用于存储二进制数据,常常为图片或音频等大的对象。【建议使用`MediumBlob`16m起或者`LongBlob`4G,因为随便保存一个图片就超过65k了】原创 2020-10-23 00:39:52 · 2915 阅读 · 0 评论 -
如何重置pgsql的密码(Reset Forgotten Password For postgres User)
BackgroundHow should we do if forgot our postgres User password . For some reason, after installing PostgreSQL, you may forget the password of the postgres user. In this case, you need to know how to reset the password.如果忘记了我们的postgres用户密码,该怎么办。 由于某些原因,原创 2020-07-30 11:04:47 · 5702 阅读 · 0 评论 -
oracle知识整理(1) union和union all的区别,left join和right join的区别(各种join的区别)
union和union all的区别UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。UNION相当于真正的关联,会进行连接+排序+去重复UNION ALL相当于简单把结果连接起来,速度快UNION在进行表链接后将会按照字段的顺序进行排序,会筛选掉重复的记录,Union All不会去除重复记录,也不存在排序。所以从效率上说,...原创 2020-01-02 18:08:25 · 3686 阅读 · 0 评论 -
ORA-1653: unable to extend table by 1024 in tablespace(oracle表空间满了的解决方案)
前言今天某项目的一个Repository的正常CRUD操作,发现报错信息ORA-1653:unable to extend table by 1024 in tablespace,什么意思呢,就是表空间已满,无法扩展.问题分析USERS表空间是默认用户表空间,在创建一个用户并没有指定此用户使用表空间时,该用户所有信息都会放入到users表空间中,如果有指定则一般是用户名相关的表空.--查看...原创 2019-10-23 14:13:00 · 9665 阅读 · 4 评论 -
DBA锁库查询(Oracle)
通常我们会遇到oracle被一些进程堵死,有时候严重影响系统,那么这套脚本可以查询出问题,给出建议,并且给出可以终结进程的命令select s.inst_id, s.sid, s.machine, s.username, s.osuser, s.schemaname, o.object_name, ...原创 2018-04-10 11:54:58 · 4304 阅读 · 0 评论