数据库
文章平均质量分 88
xuejianxinokok
这个作者很懒,什么都没留下…
展开
-
从 PostgreSQL 15 升级到 16
注意:如果您需要版本14至15的升级步骤,可以在找到。原创 2024-04-09 08:40:18 · 338 阅读 · 0 评论 -
起飞了 ! 使用 DuckDB 的处理11 亿出租车出行数据
如果您想知道为什么我不运行基于 Linux 的桌面作为我的主要工作环境,我仍在使用 Nvidia GTX 1080 GPU,它在 Windows 上有更好的驱动程序支持,并且我时不时地使用 ArcGIS Pro仅原生支持 Windows。SSD 的写入速度为 50-150 MB/s,读取速度通常为 5-10 MB/s,而 CPU 几乎处于空闲状态,为 5-10%。因此,我将在更快的驱动器上运行基准测试,但我将在更便宜的驱动器上构建 Parquet 文件。它不依赖于自己的服务器,而是用作客户端。原创 2024-04-03 11:21:16 · 738 阅读 · 0 评论 -
如何在PostgreSQL 跟踪数据变更?
PostgreSQL 是最受欢迎的数据库之一,被 DB-Engines Ranking 评为 2023 年度 DBMS,并且根据 HN Hiring Trends 的数据,PostgreSQL 在初创公司中的使用率超过任何其他数据库。PostgreSQL 是初创公司中最流行的数据库。自 2011 年以来,SQL 标准就包含了与相关的功能,这些功能允许存储随时间变化的数据,而不仅仅是当前的数据状态。然而,关系数据库并不完全遵循标准。原创 2024-03-26 10:44:23 · 660 阅读 · 0 评论 -
DuckDB 为什么这么快?
在我们的第二个管道中,我们对sale表进行了两次部分扫描,第一次扫描表的前半部分,第二次扫描表的后半部分。读取一行输入,第一个值保持不变,将输入的第二个和第三个值相加的结果 作为 输出中的第二个值 ,然后写出输出。最后,我谈到了 DuckDB 的并行模型:Morsel-Driven 并行支持跨任意数量核心的高效并行化,同时保持对多核处理的感知,从而有助于 DuckDB 的整体性能和效率。如果没有找到具有特定名称的表,我们会搜索具有该名称的其他实体,例如 Parquet 文件,直接对其执行查询。原创 2024-03-11 14:27:24 · 1839 阅读 · 0 评论 -
矢量数据库简单介绍:在 Postgres使用 pg_vector
向量是表示文本或图像等非结构化数据的数字数组。例如,让我们将这些句子表示为向量:我们可以采用所有单词并创建具有四个维度(每个术语一个)的所谓“词袋”(BoW)模型:BoW 的问题在于,它们依赖于词频,并且假设每个单词独立于其他单词出现,这是不切实际的假设。这是一个显着的简化,因为在自然语言中,上下文和含义通常在很大程度上取决于词序和词之间的关系。例如,“not good”和“good”在 BoW 模型中被视为相同的两个单词,即使由于“not”的存在而导致它们的含义相反。原创 2024-03-08 09:47:07 · 1166 阅读 · 0 评论 -
管理 PostgreSQL 中配置参数的各种方法
在这篇博文中,我们探索了四种不同的方法来配置 PostgreSQL 服务器的参数。希望这可以帮助您更好地管理配置参数并排除运行时的故障。*** 参考***Setting parameters 设置参数在 PostgreSQL 中自定义 SQL 函数:探索各种方法Setting parameters 设置参数。原创 2024-03-07 11:25:15 · 994 阅读 · 0 评论 -
使用 Visual Studio Code 在远程计算机上调试 PostgreSQL
在这篇博文中,我们演示了如何使用客户端计算机上的 Visual Studio Code 和 Linux 计算机上运行的 PostgreSQL 设置远程 PostgreSQL 开发调试环境。通过此设置,开发人员可以有效地调试 PostgreSQL 并识别和解决开发过程中的问题。调试愉快!原创 2024-02-03 11:33:13 · 1204 阅读 · 0 评论 -
postgresql16 物理复制与逻辑复制的实现和对比
关于使用 PostgreSQL 设置服务器复制以实现各种复制方法的文章到此结束。首先,我们回顾了设置和运行每种方法的实际步骤,然后查看了每种方法功能的高级摘要。原创 2024-01-15 17:09:24 · 1043 阅读 · 0 评论 -
PostgreSQL 16 的新功能:双向逻辑复制
在这篇博客中,我们将讨论 Postgres 16 中新增的一些更高级的特性。假设您拥有一些 Linux、Postgres 和 SQL 的经验,因为我们不仅要讨论这些新功能,还要讨论如何实现它们。本博客是使用在 Ubuntu 23.04 上运行的 PostgreSQL 16(开发版本)编写的。首先,我将回顾一些背景知识并简要介绍什么是双向复制以及为什么它很重要,然后结束我们如何实现双向逻辑复制。原创 2024-01-12 11:02:16 · 951 阅读 · 0 评论 -
摘要:PostgreSQL开发技术基础:过程与函数
这减轻了行更新的实际顺序的不可预见性的影响,并且意味着RETURNING数据是在不同WITH子语句和主查询之间传达改变的唯一方法。并不是所有的SQL都是有效的PL / PgSQL,正如你发现的那样,例如,你不能在没有INTO或RETURN QUERY情况下使用SELECT。WITH中的DELETE删除来自products的指定行,以RETURNING子句返回被删除的内容,然后主查询读该输出并将它插入到products_log。在大多数情况下,当你认为你需要PL / PgSQL时,你可能不需要。原创 2023-05-07 10:03:26 · 1075 阅读 · 0 评论 -
使用 pg_stat_statements 优化查询
是一个 PostgreSQL 扩展,用于记录有关正在运行的查询的信息。识别数据库中的性能瓶颈,这个过程通常感觉就像一场猫捉老鼠的游戏。快速编写的查询、索引更改或复杂的 ORM 查询生成器可能(并且经常)对数据库和应用程序性能产生负面影响。原创 2024-01-05 15:01:22 · 924 阅读 · 0 评论 -
PostgreSQL14 Internals 中文版 持续修正...
为了方便自己快速学习,整理了翻译版本,目前翻译的还不完善,后续会边学习边完善。原创 2023-12-27 17:49:01 · 469 阅读 · 0 评论 -
零停机升级Postgres
对 Postgres 表的每次插入或更新都存储为“元组”。如果一个表有 3 次插入,然后有 2 次更新,则该表将有 5 个元组。元组由 Postgres 的并发机制(mvcc)使用(更多内容请参阅文档)。Postgres 的。原创 2023-12-22 11:18:46 · 793 阅读 · 0 评论 -
postgresql15 创建只读用户
【代码】postgresql15 创建只读用户。原创 2023-05-06 15:57:39 · 520 阅读 · 0 评论 -
使用 PostgreSQL 创建全文搜索引擎1
PostgreSQL 提供了必要的模块,可以组合和创建自己的全文搜索搜索引擎。让我们尝试一下。这是系列文章的第 1 部分,将要在其中探索 PostgreSQL 中的全文搜索功能,并研究我们可以完成多少典型的搜索引擎功能。在第 2 部分中,我们将比较 PostgreSQL 的全文搜索和 Elasticsearch。如果您想跟着并尝试示例查询(推荐这样做,这样会更有趣),代码示例将使用来自 Kaggle 的数据集。该数据集包含 34,000 个电影标题,CSV 格式大小约为 81 MB。原创 2023-08-14 08:40:17 · 327 阅读 · 0 评论 -
使用 PostgreSQL 创建全文搜索引擎2:Postgres 与 Elasticsearch
使用 PostgreSQL 作为全文搜索引擎很诱人,因为它需要的基础设施较少。但它的搜索相关功能集是否足以与基于 Lucene 的替代方案竞争?在第 1 部分中,我们深入研究了 PostgreSQL 全文搜索的功能,并探讨了如何实现相关性提升(relevancy boosters)、拼写错误容错(ypo-tolerance)和多面搜索(faceted search)等高级搜索功能。在这一部分,我们将它与 Elasticsearch 进行比较。原创 2023-08-15 09:06:58 · 690 阅读 · 0 评论 -
PostgreSQL MVCC的弊端
DBMS 中 MVCC 的目标是允许多个查询同时读取和写入数据库,而不会在可能的情况下相互干扰。MVCC 的基本思想是 DBMS 永远不会覆盖现有的行。相反,对于每个(逻辑)行,DBMS 维护多个(物理)版本。当应用程序执行查询时,DBMS 根据某些版本号排序(例如创建时间戳)确定要检索哪个版本来满足请求。这种方法的好处是多个查询可以读取旧版本的行,而不会被另一个更新它的操作阻止。当 DBMS 启动该查询的事务时,查询会观察数据库的快照(快照隔离)。这种方法消除了显式记录锁record locks。原创 2023-07-14 10:59:32 · 1011 阅读 · 0 评论 -
PostgreSQL MVCC的弊端优化方案
我们之前的博客文章“我们最讨厌的 PostgreSQL 部分”讨论了大家最喜欢的 DBMS 多版本并发控制 (MVCC) 实现所带来的问题。其中包括版本复制、表膨胀、索引维护和真空管理。本文将探讨针对每个问题优化 PostgreSQL 的方法。尽管 PostgreSQL 的 MVCC 实现是 Oracle 和 MySQL 等其他广泛使用的数据库中最差的,但它仍然是我们最喜欢的 DBMS,而且我们仍然喜欢它!通过分享我们的见解,我们希望帮助用户释放这个强大的数据库系统的全部潜力。原创 2023-07-14 11:00:41 · 856 阅读 · 0 评论 -
postgres15 用file_fdw加载cvslog
【代码】postgres15 用file_fdw加载cvslog。原创 2023-05-15 16:32:07 · 94 阅读 · 0 评论 -
给Debezium connector 发送信号
Debezium 信号机制提供了一种方法来修改连接器的行为,或触发一次性操作,例如启动表的 临时快照。要触发连接器执行指定操作,可以发出特殊的SQL 命令以将信号消息添加到专门的信号表,也称为信号数据集合。在源数据库上创建的信令表专门用于与 Debezium 通信。当 Debezium 检测到新的 日志记录 或 临时快照记录 添加到信号表时,它会读取信号并启动请求的操作。原创 2022-12-26 16:26:02 · 793 阅读 · 0 评论 -
一些可以参考的文档集合10
20221116打印类的布局信息 org.openjdk.jol.info.ClassLayout。原创 2022-11-16 09:35:48 · 1092 阅读 · 0 评论 -
一些可以参考的文档集合9
长期以来,MySQL InnoDB 中的 Redo Log 采用了循环覆盖写的结构,以社区默认配置为例,MySQL 在启动时会默认创建两个日志文件:ib_logfile0 和 ib_logfile1,两个日志文件会进行交替的写入,通过 checkpoint 机制来保证写入的安全性。unused redo 文件的引入,类似于引入了缓存区的机制,因为 unused redo 文件不是正在使用的 redo 文件,所以可以直接进行重建,从而满足。,这个参数定义了 Redo Log 的总量,支持动态调整。原创 2022-10-13 08:52:13 · 783 阅读 · 0 评论 -
一些可以参考的文档集合7
记录平时看到的一些经典文章原创 2022-07-18 09:08:07 · 866 阅读 · 0 评论 -
windows 下编译redis7 最新版,提供下载地址
windows 下编译redis7原创 2022-06-23 13:49:45 · 1865 阅读 · 4 评论 -
一些可以参考的文档集合5
之前的文章集合:一些可以参考文章集合1_xuejianxinokok的博客-CSDN博客一些可以参考文章集合2_xuejianxinokok的博客-CSDN博客一些可以参考的文档集合3_xuejianxinokok的博客-CSDN博客一些可以参考的文档集合4_xuejianxinokok的博客-CSDN博客20220524本文主要描述了kafka3的安装配置包含不使用zookeeper的情况。还讨论了raft 协议定义 Server 端代码实现:publicclass...原创 2022-05-24 08:40:23 · 1487 阅读 · 0 评论 -
kafka ksqldb 流处理入门案例
6. ksqlDBksqldb是一个事件流数据库, 用于 简化kakfa 流处理 和 将kafka流处理和其他外部系统(比如关系数据库)集成。6.1 安装配置利用 docker-compose 运行ksqldb,把以下文件保存为 docker-compose.yml# 启动 docker-compose up -d && docker-compose logs -f# 关闭 docker-compose down && docker-compose rm -vf原创 2022-05-22 17:42:51 · 1010 阅读 · 0 评论 -
实战 kafka connector 与 debezium mysql
kafka connectorKafka Connect 是一个可扩展、可靠的在Kafka和其他系统之间流传输的数据工具。它可以通过connectors(连接器)简单、快速的将大集合数据导入和导出kafka。1. 安装配置1.1 下载并配置kafka我们使用的是kafka_2.13-2.8.0.tgz 您可以自行下载解压到目录 D:\soft\kafka_2.13-2.8.0 这是我的根目录修改 D:\soft\kafka_2.13-2.8.0\config 文件夹以下文件内容zookeep原创 2022-05-22 17:37:47 · 1141 阅读 · 0 评论 -
mysql8 读写分离负载均衡方法总结
mysql8 实现读写分离有很多种方法。本文比较全面的总结了目前可用的方法。其中原生的jdbc负载均衡和读写分离推荐使用,再则是基于mysql router 的方式也推荐使用,这两种方法稳定,且轻量级。mysql8 读写分离负载均衡方法总结1. spring 多数动态据源负载均衡源码如下:com.common.spring.db.DynamicDataSourcepublic class DynamicDataSource extends AbstractRoutingDataSource原创 2022-05-22 17:33:02 · 401 阅读 · 0 评论 -
oracle 分析函数(window 函数)
oracle 分析函数(window 函数)本文总结了oracle种常见的分组,rollup,cube,分析函数,行转列的常见用法1.如何同时查询两种分组?1.1 传统方法使用union ,无法避免多次扫描表--scott 用户下--部门平均工资SELECT to_char(deptno) deptno,'' job,avg(sal) dep_avg_sal FROM emp GROUP BY DEPTNO --岗位平均工资UNION ALL SELECT '' deptno, jo原创 2022-05-13 13:54:39 · 225 阅读 · 0 评论 -
Debezium Engine 使用入门
Debezium Engine通常将Debezium connectors 部署到 Kafka Connect 服务中,并配置一个或多个连接器来监控上游数据库 ,这些连接器会捕获上游数据库中所有更改后生成数据更改事件。这些数据更改事件被写入 Kafka,在那里它们可以被许多不同的应用程序独立使用。Kafka Connect 提供出色的容错性和可扩展性,因为它作为分布式服务运行,并确保所有已注册和配置的连接器始终运行。例如,即使集群中的一个 Kafka Connect 端点出现故障,其余的 Kafka Co原创 2022-05-11 17:14:17 · 1197 阅读 · 3 评论 -
Debezium connector for MySQL 配置部署
本文的上班部分介绍了基本原理和基本概念,请参考本文的上半部分: Debezium connector for MySQL 基本概念5. 部署要部署 Debezium MySQL 连接器,您需要安装 Debezium MySQL 连接器插件程序,配置连接器,然后通过将其配置添加到 Kafka Connect 来启动连接器。先决条件已安装Apache Zookeeper、Apache Kafka和Kafka Connect。MySQL 服务器已安装并设置为与 Debezium 连接器一起使用原创 2022-05-10 15:32:55 · 3137 阅读 · 0 评论 -
Debezium connector for MySQL 基本概念
Debezium connector for MySQLMySQL 的 binlog 会按照事务提交的顺序记录所有的操作变更。这些变更既包含 表 schema的变更也包含 数据的变更。MySQL 使用binlog来复制和恢复数据。Debezium MySQL 连接器读取 binlog,为行级INSERT,UPDATE和DELETE操作生成更改事件,并将更改事件发送到 Kafka 主题。客户端应用程序读取这些 Kafka 主题。由于 MySQL 通常设置为在指定时间段后清除 binlog,因此 MySQ原创 2022-05-10 15:31:00 · 2342 阅读 · 0 评论 -
mysql8 读写分离负载均衡方法总结
mysql8 实现读写分离有很多种方法。本文比较全面的总结了目前可用的方法。其中原生的jdbc负载均衡和读写分离推荐使用,再则是基于mysql router 的方式也推荐使用,这两种方法稳定,且轻量级。原创 2022-05-09 16:51:05 · 996 阅读 · 0 评论 -
mysql8 Instant DDL 中间位置添加列
MySQL 8.0.29版本可以在任何地方添加列,而且是Instant,这个是个好特性原创 2022-05-07 10:45:36 · 549 阅读 · 0 评论 -
mysql8 RC隔离级别 Record Locks ,Gap Locks, Next-Key Locks实验3和总结
5. RC 隔离级别下加锁行为由于隔离级别的实现是靠加锁来实现的 所以在 考察完 RR 隔离级别下加锁的情形后 我们需要分析另一个常用的隔离级别RC首先需要把数据库的全局隔离级别设置为RCset global TRANSACTION ISOLATION level read COMMITTED;show global variables like 'transaction_isolation'; -- 恢复为RR-- set global TRANSACTION ISOLATION leve原创 2022-05-06 15:53:54 · 933 阅读 · 0 评论 -
mysql8 Record Locks ,Gap Locks, Next-Key Locks 实验1
next-key lock 是一个 锁组合,也就是说它有多个锁组合而成2. 首先 next-key lock 包含 一个 index record 上的 record lock3. 另外 next-key lock 还包含一个 a gap lock on the gap before the index record,这句话的意思是 在 **第二点** 锁定的 record lock 之前的间隙 和 **第2点** 上的记录锁 组合成一个 next-key lock4. 那么怎么理解 *原创 2022-04-30 17:06:34 · 1063 阅读 · 2 评论 -
mysql8 window 单机配置Group Replication(单主和多主)
之前在windows上 配置了mysql 的异步复制,可以参考如下文档mysql8 window安装,链式复制,双主复制,数据库的负载均衡_xuejianxinokok的博客-CSDN博客by [email protected] 2021年3月25日 周四 15:06:43====================================1. 下载地址https://dev.mysql.com/downloads/mysql/2. 下载文件名称为: mysql-8.0.23-winx6.原创 2022-04-19 17:05:31 · 1027 阅读 · 1 评论 -
一些可以参考的文档集合2
20211102对于 Kafka 来说,它主要用来处理海量数据流,这个场景的特点主要包括:1. 写操作:写并发要求非常高,基本得达到百万级 TPS,顺序追加写日志即可,无需考虑更新操作2.读操作:相对写操作来说,比较简单,只要能按照一定规则高效查询即可(offset或者时间戳)把消息的 Offset 设计成一个有序的字段,这样消息在日志文件中也就有序存放了,也不需要额外引入哈希表结构,可以直接将消息划分成若干个块,对于每个块,我们只需要索引当前块的第一条消息的 Offs...原创 2021-11-02 09:11:25 · 1097 阅读 · 0 评论 -
windows7 安装postgresql 错误The database cluster initialisation failed
出现的错误Problem running post-install step. Installation may not complete correctlyThe database cluster initialisation failed.主要是数据目录无法初始化解决方法:1. 先安装软件 到D:\soft\PostgreSQL2. 安装完成后服务无法启动,执行以下命令初始化数据库数据文件D:\soft\PostgreSQL\bin>D:\soft\Postgre...原创 2021-10-28 14:34:30 · 971 阅读 · 0 评论 -
撮合系统设计
简介:撮合技术主要是从数据库撮合技术向内存撮合技术发展,这是因为数据库撮合技术越来越无法满足金融交易对于高可靠性、高性能、强安全性、可扩展性以及易维护性的需求。本文来自中生代技术群的34期分享,将和大家讨论基于内存的撮合的系统设计。概述随着信息技术的日新月异和金融业务的快速发展,金融交易领域对于核心技术的求也在不断增强,国内外金融交易模式已经从传统的人工叫价的方式变成了由高度电子化交易系统撮合订单的方式。传统的金融交易主要发生在有型金融市场中,金融交易的买卖双方通过叫价进行价格协商等方式最终达成一.原创 2021-10-11 14:33:39 · 1885 阅读 · 0 评论