数据库_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 并放在用户的主目录下,路径通常是 ~/.pgpass2.进程
  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 102017年)引入了逻辑复制和表分区改进
 PostgreSQL 132020年)提供了增强的索引和分区功能,改进了并行处理效率

安装和使用

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
posted @   辰令  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2023-07-14 Linux_命令行用于数据分析
2022-07-14 云计算_kubectl 与docker命令
点击右上角即可分享
微信分享提示