数据库_SQL-PostgreSQL
PostgreSQL
1.基本的架构:
the basic PostgreSQL system architecture:a client/server mode
A server process
The user's client
they communicate over a TCP/IP network connection.
2.基本概念
database TABLE rows psql
1. 安装完postgresql后,我们发现它自带了3个数据库。postgres、template0、template1。1 数据库作为 PostgreSQL 提供的默认数据库,主要用作初始连接点以及执行系统级别的管理和查询任务
初始化数据库后默认的表空间有pg_default、pg_global
2.PostgreSQL中的所有数据库对象都由各自的对象标识符(oid)在内部管理
几张系统表:pg_class、pg_attrubute、information_schema.columns
information_schema.columns 是 PostgreSQL 中的系统视图之一,它存储了数据库中所有表的列信息
3.
PostGIS是最著名的一个开源GIS系统,它是PostgreSQL中的一个插件
3.基本内容和命令
基本情况。
1.安装位置和配置文件
PostgreSQL的主要配置文件是
postgresql.conf,它通常位于PostgreSQL数据目录中,例如/var/lib/postgresql/data
PostgreSQL 服务监听的端口,默认是 5432
pg_hba.conf 是 PostgreSQL 数据库的一个重要配置文件,用于控制客户端对数据库的访问权限
.pgpass 文件是一种用于存储 PostgreSQL 数据库的用户名和密码的配置文
pgpass 并放在用户的主目录下,路径通常是 ~/.pgpass。
2.进程
Postmaster 进程
WalWriter 进程这个进程负责将 WAL(Write-Ahead Logging)日志从内存缓冲区写入到磁盘,以确保数据持久性和一致性
ALWriter、Checkpointer 和 Background Writer 的协同工作
SELECT pid, usename, datname, query, state, query_start FROM pg_stat_activity;
4.帮助系统
src/tutorial/.
基本的-查询 join等命令 Aggregate Functions
5.特别
1.PG中的继承,继承表,而表继承可以完成的两个功能 1 table partitioning 2 multi-tenancy
使用面向对象的思想来组织数据库 Inheritance
2.在PostgreSQL中,扩展是一种可插拔的模块,允许用户添加额外的功能或数据类型到数据库中。扩展可以用于添加新的查询类型、数据类型、函数、操作符、索引类型等
CREATE EXTENSION
3.支持非关系型数据的存储,如KV存储、JSON等格式的数据 PostgreSQL更适合处理复杂的查询和分析型任务
6。国内的数据库
阿里oceanbase
华为基于PostgreSQL的 OpenGauss 数据库
腾讯TDSQL,基于mysql修改
PolarDB for PostgreSQL特性
处理大量的高并发写入操作--mysql
AI for DB、DB for AI
Vector Database 向量数据库是专门为存储、查询和处理向量数据设计的数据库
向量数据库的核心是向量索引-是非结构化数据搜索的问题
Meta 的 AI 向量相似性搜索 FAISS
Milvus 开源向量数据库
SQL数据库(Structured Query Language Database)--在数据库中添加向量索引
在原来传统数据库上增加了一项向量检索能力
时序数据库
两者的主要区别在于它们的数据存储方式、数据规模、查询方式和计算密集型
AI 数据库就不能只支持向量了,还是得把其他模态的数据都包进去
RAG——Retrieval Augmented Generation,检索增强生成 是将知识检索(Retrieval) 和语言生成(Generation)
当向量数据的量没有那么大,查询的需求也没有那么高的时候,用户会有很多选择,一般也会考虑原有的厂商加个集成
PostgreSQL
Postgres (1989年) 支持对象关系数据模型
Postgres95 (1995年) 添加了SQL语言支持,提高了性能
PostgreSQL 10(2017年)引入了逻辑复制和表分区改进
PostgreSQL 13(2020年)提供了增强的索引和分区功能,改进了并行处理效率
安装和使用
PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,
初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等。
PostgreSQL数据库在安装时会生成一个默认的超级用户账号postgres,同时会生成一个随机的密码。
这个密码可以在PostgreSQL的日志文件中找到,通常在安装完成后的第一次启动时会打印出来
postgres 数据库中会初始化一名超级用户 postgres psql是PostgreSQL的一个命令行交互式客户端工具 -p 5432
MySQL 数据库中默认的名为mysql数据库 mysql -h 127.0.0.1 -u root -p
PostgreSQL在安装时默认密码设置为“postgres”
/usr/lib/postgresql/10/bin/postgres
查看版本: postgres --version
修改postgresql.conf文件以允许远程连接
> sudo vim /var/lib/pgsql/13/data/postgresql.conf
登录psql: sudo -u postgres psql
命令 \l list的首字母
CREATE USER username WITH PASSWORD 'password';
扩展
sudo apt-get install libreadline6-dev
export PG_CONFIG=/Library/PostgreSQL/16/bin/pg_config
查看已安装的扩展
SELECT * FROM pg_extension;
pgVector
1.存储数据--创建向量字段
2.查询数据 距离函数
操作符 函数 距离类型
<-> l2_distance 两个向量相减得到的新向量的长度
<#> vector_negative_inner_product 两个向量内积的负值
<=> cosine_distance 两个向量夹角的cos值
3.HNSW 索引
hnsw (embedding vector_l1_ops); hnsw (embedding vector_l2_ops);
hnsw (embedding vector_ip_ops);hnsw (embedding vector_cosine_ops);
4.IVFFlat 索引
ivfflat (embedding vector_l2_ops) WITH (lists = 100)
ivfflat (embedding vector_ip_ops) WITH (lists = 100)
ivfflat (embedding vector_cosine_ops) WITH (lists = 100)
PGVector目前支持HNSW & IVFFlat
Milvus 支持的11 种索引类型
11 种(FLAT、
IVF_FLAT、IVF_SQ8、IVF_PQ、
HNSW、BIN_FLAT、BIN_IVF_FLAT、DiskANN、GPU_IVF_FLAT、GPU_IVF_PQ、ScaNN)
支持精确和近似最近邻搜索(ANN,Approximate Nearest Neighbor),
其距离或相似度度量方法包括欧氏距离(L2)、余弦相似度(Cosine)以及内积运算(Inner Product)。
索引构建支持HNSW索引、并行索引IVFFlat、向量的逐元素乘法、L1距离函数以及求和聚合。
最大支持创建16000维度的向量,最大支持对2000维度的向量建立索引
其他工具交互
dbeaver离线连接postgresql
离线下载驱动:maven repository
https://mvnrepository.com/artifact/org.postgresql/postgresql/42.6.0
pip install pgvector
https://repo1.maven.org/maven2/
参考
向量数据库:PGVector https://blog.csdn.net/m0_37559973/article/details/138282914
分类:
SQL_数据仓库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2023-07-14 Linux_命令行用于数据分析
2022-07-14 云计算_kubectl 与docker命令