PostgreSQL(PG)(二十二)

news2024/9/21 21:31:17

🌻🌻 目录 🌻🌻

  • 一、PostgreSQL 简介
    • 1.1、PG 的历史
    • 1.2、PG的社区
      • 1.2.1 纯社区
      • 1.2.2 完善的组织结构
      • 1.2.3 开源许可独特性
    • 1.3 、PostgreSQL与MySQL的比较
  • 二、PostgresQL的下载安装
    • 2.1、Windows上安装 PostgreSQL
    • 2.2、远程 连接 PostgreSQL
    • 2.3、Linux上安装 PostgreSQL
  • 三、PostgresQL的基本使用
    • 3.1、登录
    • 3.2、数据库操作
    • 3.3、数据库表操作
      • 3.3.1 创建数据库表(自增与mysql有区别)
      • 3.3.2 数据表插入数据(与mysql相同)
      • 3.3.3 修改删除表数据操作(与mysql相同)
    • 3.4、Schema
    • 3.5、如何备份PostgreSQL数据库(了解)
    • 3.6、用户操作(了解)
    • 3.7、PostgreSQL 角色管理(了解)
    • 3.8、控制台常用命令总结

要点:

  • 📈 PostgreSQL全球入门数据库排名第四,超越MongoDBRedis
  • 💼 国内企业及政府部门因数据安全考虑,转用PostgreSQL替代Oracle。
  • 📄 PostgreSQLBSD许可证允许定制后商业化,区别于MySQL的GPL许可证。
  • 📘 课程内容:PostgreSQL特性与历史、跨平台安装、开发者常用操作总结。

一、PostgreSQL 简介

在这里插入图片描述

  • PostgreSQl是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。
  • PostgreSQL开发者把它念作post-gress-Q-L。
  • PostgreSQL 的 Slogan 是"世界上最先进的开源关系型数据库”。
  • “开源界的Oracle”,去O首选
  • PostgreSQL官网
    https://www.postgresql.org/
  • PostqreSQL中文社区
    http://www.postgres.cn/v2/home
  • 全球数据库排行
    https://db-engines.com/en/

在这里插入图片描述

  • 国产数据库排行
    https://www.modb.pro/dbRank

在这里插入图片描述

1.1、PG 的历史

  • PostgreSQL最初设想于1986年,当时被叫做Berkley Postgres Project。
  • 该项目一直到1994年都处于演进和修改中,直到开发人员AndtrewYu和)oly Chen在Postgres中添加了一个SQl(Strnctured Queny Language,结构化査询语言)翻译程序,该版本叫做Postqres95,在开放源代码社区发放。
  • 开始以社区的形式运作。
  • 1996年,再次对Postgres95做了较大的改动,并将其作为PostgresSQL6.0版发布。该版本的Postgres提高了后端的速度,包括增强型SQL92标准以及重要的后端特性(包括子选择、默认值、约束和触发器)。
  • 2005年,发布8.0版本,开始支持windows系统环境。
  • PostgreSQL9.0:支持64位windows系统,异步流数据复制、HotStandby;
  • PostgreSQL9.1:支持数据同步复制,unlogged tabels、serializable snapshotisolation、FDW 外部表。此版本后,PostgresQl开始得到中国多个行业用户的关注,开始有应用于电信、保险、制造业等边缘系统。
  • 目前生产环境主流的版本是PostgreSQL12
  • 2021-09-30,PostgreSQL全球开发组宣布,功能最为强大的开源数据库,PostgreSQL14版本正式发布!

1.2、PG的社区

  • PG为什么没有被商业公司控制?

1.2.1 纯社区

在这里插入图片描述

他们为什么要贡献核心代码?

最终用户

  • 希望社区长久,期望可以享受免费的、可持续发展的、开源的、不被任何商业公司、不被任何国家控制的企业级数据库。去0,去DB2,去Sybase;
  • 不靠数据库赚钱;
  • PG用到的人越多,越多人背书,使用越靠谱(事实也是如此);
  • 抛砖引玉,企业投入2个研发持续贡献(一年可能一两百万),实际上整个PG社区有数千人在贡献,对最终用户来说,简直赚到了,使用商业数据库,除了LICENSE等成本依旧需要投管理、研发、外包资源,一年数干万甚至上亿,公司越大,越有动力去贡献社区,从趋势来看,给PG贡献代码的大客户只会越来越多!

云厂商

  • 开源数据库与云厂商发生利益冲突,纷纷改协议;
  • 数据库市场巨大:
  • 自研是最佳选择,但是自研有一些问题:警如需要培养生态,需要市场背书,需要大量研发资源,可能需要重复造轮子
  • BASE PG的好处:
    1、免去自己培养生态,
    2 避色雷何造轮子
    3、PG的代码基础非常不错(开源界的Oracle)
    4、防止其他厂商控制PG失去市场主导能力(AWS,google,IBM,微软都已成为PG社区的赞助商)

数据库厂商

  • 推一款新的商业数据库,通常都需要背书,小厂产品,谁为你背书?
    1、有技术的厂商,很难挑战已有的数据库市场格局
    2、有渠道的厂商,需要抓住窗口期,快速占领市场,避免重复造轮子。需要一款可以无法律风险,二次分发的开源数据库,唯有PG可以贡献核心代码,社区所有的用户都可以为之背书。

数据库服务IDaas服务提供商

  • 开源产品的服务提供商,能力如何体现?
    当然是你的架构能力,优化能力,管理能力,FIX BUG的能力
    最好能贡献核心代码,有PG为你背书

1.2.2 完善的组织结构

在这里插入图片描述

1.2.3 开源许可独特性

(Postgres遵守BSD许可证发行)却使开发者们得以获取源代码并进一步开发系统。
BSD许可协议(英语:Berkeley software Distribution icens)是自由软件中使用最广泛的许可协议之一。BSD就是遵照这个许可证来发布,也因此而得名 BSD许可协议。BSD包最初所有者是加州大学董事会,这是由于 BSD源自加州大学伯克利分校。BSD开始后,BSD许可协议得以修正,使得以后许多BSD变种,都采用类似风格的条款。跟其他条款相比,从GNU通用公共许可证(GPL)到限制重重的著作权(copyright),BSD许可证比较宽松,甚至跟公有领域更为接近。“Take it down to the copy centerand make asmany copies as you want”,可以说,GPL强迫后续版本必须一样是自由软件BSD的后续版本可以选择要继续是BSD或其他自由软件条款或封闭软件等等。

众所周知,MySQL被Oracle所控制,MySQL同时使用了GPL和一种商业许可(称为双重许可)。GPL(GeneralPubic icense)是公共许可,遵循了GPL的软件是公共的。如果某软件使用了GPL软件,那么该软件也需要开源,如果不开源,就不能使用GPL软件,这和是否把该软件商用与否是没关系的。
如果无法满足GPL,就需要获得商业许可,通过与0racle公司联系,制定解决方案,受Oracle公司约束。

同为开源软件,PostgreSQL源码使用自由友好、商业应用不受任何公司实体所控制,而MySQL则在一定程度上有所限制。

1.3 、PostgreSQL与MySQL的比较

PostgresQL相对于MySQL的优势

  • 1)在SQL的标准实现上要比MVSQL完善,而目功能实现比较严谨。
  • 2)对表连接支持较完整,优化器的功能较完整,支持的索引类型很多,复杂查询能力较强
  • 3)PG主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。
  • 4)PG的主备复制属于物理复制,相对于MvSQL基于biniog的逻辑复制,数据的一致性更加可靠,复制性能更高,对主机性能的影响也更小。
  • 5)PostgreSQL支持ISON和其他NOSQL功能,如本机XML支持和使用HSTORE的键值对,它还支持索引SON数据以加快访问速度,特别是10版本JSONB更是强大,
  • 6)PostgresQL完全免费,而且是BSD协议,如果你把PostgreSQL改一改,然后再拿去卖钱,也没有人管你,这一点很重要,这表明了PostgreSOl数据库不会被其它公司控制。相反,MySQL现在主要是被Oracle公司控制。

MySQL相对于PG的优势

  • 1)innodtb 的基于回滚段实现的MVCC机制,相对PG新老数据一起存放的基于XD的MVCC机制,是占优的。新老数据一起存放,需要定时触 发VACUUM,会带来多余的!0和数据库对象加锁开销,引起数据库整体的并发能力下降。而且VACUUM清理不及时,还可能会引发数据膨胀。
  • 2)MSQL采用索引组织表,这种存储方式非常适合基于主键匹配的査询、删改操作,但是对表结构设计存在约束,
  • 3)MySQL的优化器较简单,系统表、运算符、数据类型的实现都很精简,非常适合简单的查询操作。
  • 4)MySQL相对于PG在国内的流行度更高,PG在国内显得就有些落寞了。
  • 5)MySQL的存储引擎插件化机制,使得它的应用场景更加广泛,比如除了innodb适合事务处理场景外,myisam适合静态数据的查询场景。

总结

  • 从应用场景来说,PG更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),但不仅仅限制于此,PostgreSQL的json,jsonb,hstore等数据格式,特别适用于一些大数据格式的分析;而MVSQL更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场量(比如go0gqle、(acebook、albaba),当然现在MVSQL的在innodb引擎的大力发展,功能表现良好

扩展阅读:
PostgresQL 是中国第一的开源数据库?
https://cloud.tencent.com/developer/article/1847734
解密:为什么国产数据库使用PostgreSQl而不是MySQL
https://www.iidba.com/thread-290491-1-1.html
神仙打架:PG 和 MySQL 到底哪个更好用?
https://dbaplus.cn/news-11-3235-1.html

在这里插入图片描述

二、PostgresQL的下载安装

2.1、Windows上安装 PostgreSQL

(1) 下载 PostgreSQL 14.0

  • 访问 官网下载地址Windows版本
    https://www.postgresql.org/download/
  • 本地资源库获取

双击下载安装包,开始安装

  • ① 官网界面显示

在这里插入图片描述

  • ② 选择系统,比如我都 Windows

在这里插入图片描述

  • ③ 下载安装

在这里插入图片描述

  • ④ 选择 右边 windows

在这里插入图片描述

(2) 安装

  • ① 右击程序运行如下:

在这里插入图片描述

  • ② 修改磁盘路径

在这里插入图片描述

  • ③ 密码默认输入 postgres 即可

在这里插入图片描述

  • ④ PostgreSQL端口为5432,傻瓜式安装即可

在这里插入图片描述

  • ⑤ 最终完成安装。

在这里插入图片描述

(3) 启动登录(图像界面显示)

  • ① 打开开始菜单进行开启

在这里插入图片描述

  • ② 输入密码自定义密码

在这里插入图片描述

  • ③ 汉化处理(设置后关闭打开就会生效)

在这里插入图片描述

  • ④ 验证是否正常
select * from pg_database;

在这里插入图片描述

(3) 启动登录(命令行)

  • ① 启动

在这里插入图片描述

  • ② 验证是否正常
select * from pg_database;

在这里插入图片描述

2.2、远程 连接 PostgreSQL

出现这个错误是还没修改配置

在这里插入图片描述

修改配置:

  • 1.打开postgresql安装目录的data子目录

在这里插入图片描述

  • 2.修改pg_hba.conf文件:在IPV4部分添加新的一行:host all all 0.0.0.0/0 md5

在这里插入图片描述

    1. 控制面板–>系统与安全–>Windows 防火墙,关闭防火墙

在这里插入图片描述

    1. 重启服务即可

在这里插入图片描述

  • 5.远程还是连接不上,我用的navicat 是12版的,下载15版本就可以

在这里插入图片描述

  • 版本升级为Navicat15就可以啦
  • 上面获取失败可通过网盘下载: Navicat15链接 提取码: 8h4x

在这里插入图片描述

在这里插入图片描述

2.3、Linux上安装 PostgreSQL

(1) 下载 PostgreSQL 14.0

  • 访问 官网下载地址Linux版https://www.postgresql.org/ftp/source/v14.0/述
  • 本地资源库下载获取
  • ① 选择Linux

在这里插入图片描述

  • ② 压缩包安装方式

在这里插入图片描述

  • ③ 命令行安装方式(下面用到此方法安装)

在这里插入图片描述

在这里插入图片描述

(2) Linux 安装 PostgreSQL 14.0

  • ① 虚拟机准备
  • ② 官网下载获取RPM

在这里插入图片描述

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  • ③ 安装 PostgreSQL服务

在这里插入图片描述

sudo yum install -y postgresql14-server
  • ④ 初始化数据库

在这里插入图片描述

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
  • ⑤启动SQL服务以及设置自启动

在这里插入图片描述

#设置PostgresQL服务为开机自启动
sudo systemctl enable postgresql-14

#启动PostgreSQL服务
sudo systemctl start postgresql-14

(2) 修改 postgres 账号密码

  • PostgreSQL安装成功之后,会默认创建一个名为postgres的linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。
  • postgres数据库中会初始化一名超级用户postgres为了方便我们使用postgres账号进行管理,我们可以修改该账号的密码
  • 进入PostgreSQL命令行,通过su命令切换linux用户为postgres会自动进入命令行

在这里插入图片描述

su  postgres

psql
  • ① 修改密码也可以跳过这步(下面修改就可以啦)
ALTER USER postgres WITH PASSWORD "NewPassword';

退出:

\q

exit;

(3) 配置远程访问

  • ① 开放端口(因为我的防火墙是关闭的)

在这里插入图片描述

sudo firewall-cmd --add-port=5432/tcp --permanent

#修改配置文件
vi /var/lib/pgsql/14/data/postgresql.conf

#将监听地址修改为
#默认1isten_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行
listen_addresses='*'

在这里插入图片描述

# 允许所有IP访问
#修改配置文件
vi /var/lib/pgsq1/14/data/pg_hba.conf

#在问价尾部加入
host all al1 0.0.0.0/0 md5

# 重启PostgreSQL服务
sudo systemctl restart postgresql-14

在这里插入图片描述
在这里插入图片描述

  • ② 再次远程访问

在这里插入图片描述

  • ③ 进入修改密码:

在这里插入图片描述

su postgres

psql

alter user postgres with password 'postgres';

在这里插入图片描述

#验证
select * from pg_database;

在这里插入图片描述

三、PostgresQL的基本使用

3.1、登录

#psg1 -h 服务器 -U用户名 -d数据库 -p 端口地址         //-U 是大写
psql-U dbuser -d exampledb -h 127.0.0.1 -p 5432

$psql (连接数据库,默认用户和数据库都是postgres)
#相当于系统用户posteres以同名数据库用户的身份,登录数据库,这是不用输入密码的。如果一切正常,系统提示符会变为"pstgres=#",表示这时己经进入了数据库控制台。

3.2、数据库操作

第一种创建方式:

在这里插入图片描述

#创建数据库

CREATE DATABASE mydb;
#查看所有数据库
\l

#切换当前数据库
\c mydb

#删除数据库
drop database <dbname>

在这里插入图片描述

第二种创建方式:

在这里插入图片描述

su postgres

#这个里面就是可以使用createdb的,上面不可的
createdb mydb; 

psql -d mydb;

\c postgres;
\l

这里刷新也是有的:

在这里插入图片描述

3.3、数据库表操作

3.3.1 创建数据库表(自增与mysql有区别)

3.3.2 数据表插入数据(与mysql相同)

创建表格时每列都必须使用数据类型。PotgreSQL中主要有三种数据类型:

  • 数值数据类型
  • 字符串数据类型
  • 日期/时间数据类型

在这里插入图片描述

字符串字符串类型包括

  • char(size),character(size):固定长度字符串,size 规定了需存储的字符数,由右边的空格补齐;
  • varchar(size),character varying(size):可变长度字符串,size 规定了需存储的字符数;
  • text:可变长度字符串。

日期/时间
表示日期或时间的数据类型有:

  • timestamp:日期和时间:
  • date:日期,无时间;
  • time:时间;

其他数据类型类型还有布尔值 boolean(true 或 false),货币数额 money 和 几何数据等。

\c mydb;

 #创建表
create table test(id int,name varchar(20));

#在表中插入数据
insert into test values(1,'Daniel');

 #查看当前数据库下所有表
 \d

#查看表结构,相当于desc
\d test

PostgreSQl使用序列来标识字段的自增长,数据类型有smalserial、serial和 bigserial,这些属性类似于 MySQL 数据库支持的 AUTO_INCREMENT 属性,SMALLSERIAL、SERIAL和 BIGSERIAL 范围:

在这里插入图片描述

示例

\c mydb

#自增不需要 数据类型 默认为Integer
create table test2(id serial primary key,name varchar(30));

insert into test2(name) values('hollow');
insert into test2(name) values('Daniel');

 select * from test2;

在这里插入图片描述

3.3.3 修改删除表数据操作(与mysql相同)

在这里插入图片描述

select * from test2 where id = 2;
 
update test2 set name = '小金' where id = 2;

delete from  test2 where id=1;

3.4、Schema

  • PostgreSQL模式(SCHEMA)可以看着是一个表的集合。
  • 一个模式可以包含视图、索引、数据类型、函数和操作符等。
  • 相同的对象名称可以被用于不同的模式中而不会出现冲突,例如schema1myschemà 都可以包含名为 mytable 的表。
  • 使用模式的优势:
    • 允许多个用户使用一个数据库并且不会互相干扰。
    • 将数据库对象组织成逻辑组以便更容易管理。
    • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突,模式类似于操作系统层的目录,但是模式不能嵌套。

在这里插入图片描述

#创建schema:
create schema myschema;

create table myschema.company(id int,name varchar(20));

#删除schema
drop schema myschema;
#删除一个模式以及其中包含的所有对象:
DROP SCHEMA myschema CASCADE;

在这里插入图片描述

3.5、如何备份PostgreSQL数据库(了解)

  • 如果您在生产环境中使用PostgreSQL,请务必采取预防措施以确保用户的数据不会丢失。

单数据库

  • PostgreSQL提供了 pg_dump 实用程序来简化备份单个数据库的过程。 必须以对要备份的数据库具有读取权限的用户身份运行此命令。

以postgres 用户身份登录:

sudo su- postgres
  • 通过运行以下命令将数据库的内容转储到文件中。替换 dbname 为要备份的数据库的名称。
pg_dump dbname >dbname.bak
  • 生成的备份文件 dbname.bak可以使用 scp传输到另一台主机,也可以存储在本地以供以后使用。要演示恢复丢失的数据,请删除示例数据库,并在其位置创建一个空数据库:使用 psql 恢复数据库
psql test < dbname.bak

备份格式有几种选择:

*.bak:压缩二进制格式
*.sql:明文转储
*.tar : tarball

注意:默认情况下,postgreSQL将忽略备份过程中发生的任何错误。这可能导致备份不完整,要防止这种情况,您可以使用-1选项运行pg_dump命令。这会将整个备份过程视为单个事务,这将在发生错误时阻止部分备份。

所有数据库

  • 由于pg_dump一次只创建一个数据库的备份,因此它不会存储有关数据库角色或其他群集范围配置的信息。 要存储此信息并同时备份所有数据库,可以使用 pg_dumpall创建备份文件
pg dumpall >pg backup.bak

从备份还原所有数据库:

psql -f pg backup.bak postgres
#备份数据库
$pg_dump -U postgres -f /tmp/postgres.sql postgres(导出postgres数据库保存为postgres.sql)

$pgdump-Upostgres -f /tmp/postgres.sgl-t test postgres(导出postgres数据库中表test的数据)

$ pg_dump -U postgres -Ft-f /tmp/postgres.tar postgres(导出postgres数据库以tar形式压缩保存为postgres.tar)


#恢复数据库
$psql-U postgres -f /tmp/postgres.sglbk1(恢复postgres.sql数据到bk01数据库)

#pg_restore -- 从pg_dump创建的备份文件中恢复PostgresQL数据库,用于恢复出pg_dump转储的任何非纯文本格式中的PostgresQL数据库

$pg_restore -U postgres-dbk01 /tmp/postgres.tar(恢复postgres.tar数据到bk01数据库)

3.6、用户操作(了解)

#创建用户并设置密码
CREATE USERtusername'WITH PASSWORDpassword';CREATE USER test WITH PASSWORD "test";

#修改用户密码
$ALTER USERusername" WITH PASSWORD "password";

#数据库授权,赋予指定账户指定数据库所有权限
$GRANT ALL PRIVILEGES ON DATABASE 'dbname' To 'username";

#将数据库mydb权限授权于 test
GRANT ALL PRIVILEGES ON DATABASE mydb To test;

#但此时用户还是没有读写权限,需要继续授权表
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO xxx;
#注意,该sq1语句必须在所要操作的数据库里执行

#移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE mydb from test

#删除用户
drop user test

#查看用户
\du

注意:要指定数据库名,如果不指定默认使用与用户同名的数据库。
peer不是常用的方式!最常用的方式是通过密码远程登陆。

3.7、PostgreSQL 角色管理(了解)

PostgreSQL 里没有区分用户和角色的概念,"CREATE USER"为"CREATE ROLE”的别名,这两个命令几平是完全相同的,唯一的区别是"CREATE USER"命令创建的用户默认带有LOGIN属性,而"CREATE ROLE"命令创建的用户默认不带LOGIN属性。

在这里插入图片描述

3.8、控制台常用命令总结

\password 命令(设置密码)

\q 命令(退出)

\h: 查看SQL命令的解释,比如\hselect

\?: 查看psql命令列表。

\l : 列出所有数据库。

\c [database_name]:连接其他数据库

\d: 列出当前数据库的所有表格。

\d [table_name]:列出某一张表格的结构。

\du: 列出所有用户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新能源汽车数据大全(产销数据\充电桩\专利等)

新能源汽车数据大全&#xff08;产销数据\充电桩\专利等&#xff09; 来源&#xff1a;全国各省市统计年鉴、统计公报、国家能源署、中国汽车行业协会&#xff0c;各类汽车统计年鉴、中国电动汽车充电基础设施促进联盟等 1、汽车分品牌产销(95家车企&#xff0c;768个车型&am…

项目第六弹:虚拟机管理模块、路由匹配模块

项目第六弹&#xff1a;虚拟机管理模块、路由匹配模块 一、虚拟机管理模块的设计1.什么是虚拟机&#xff1f;2.借助MySQL来理解一下3.如何整合&#xff1f;【埋下伏笔】 二、RabbitMQ为何要有虚拟机1.从业务角度来讲2.步步探索1.优点2.结合业务适用场景和需求3.发掘真正的原因4…

图神经网络模型的扩展(5)--1

1.深层图卷积网络 前面讲到&#xff0c;随着图卷积网络层数的叠加&#xff0c;其表达力反而会丢失&#xff0c;因为过深的图卷积网络会造成过平滑的现象。同时&#xff0c;在标准数据集上的实验结果似乎也可以佐证&#xff1a;在我们常用的Cora 等图数据集上&#xff0c;如图卷…

【AcWing】875. 快速幂

#include<iostream> using namespace std; typedef long long LL;LL qmi(int a,int b,int p){LL res1%p;//%p是为了p1的时候&#xff0c;余数是0while(b){if(b&1) resres*a%p;//位数是1的b>>1;aa*(LL)a%p;//a*a再modp是为了防止溢出}return res; }int main(){i…

IO 多路转接之 select

文章目录 IO 多路转接之 select1、初识 select2、select 函数及其参数解释3、select 函数返回值4、select 的执行过程5、socket 就绪条件5.1、读就绪5.2、写就绪5.3、异常就绪 5、select 的特点6、select 的缺点7、select 使用实例7.1、只检测检测标准输入输出7.2、使用 select…

YOLOv8改进 | 自定义数据集训练 | AirNet助力YOLOv8检测

目录 一、本文介绍 二、AirNet原理介绍 2.1 对比基降解编码器&#xff08;CBDE&#xff09; 2.2 降解引导修复网络&#xff08;DGRN&#xff09; 三、yolov8与AirNet结合修改教程 3.1 核心代码文件的创建与添加 3.1.1 AirNet.py文件添加 3.1.2 __init__.py文件添加 3…

ONES 与华为云深度合作,共同打造企业智能研发管理平台

9月20日&#xff0c;在华为全联接大会&#xff08;HUAWEI CONNECT 2024&#xff09;上&#xff0c;深圳复临科技有限公司&#xff08;以下简称“ONES”&#xff09;与华为云计算技术有限公司&#xff08;以下简称“华为云”&#xff09;正式签署合作协议&#xff0c;双方将在企…

Java线程池实现父子线程上下文传递以及MDC追踪

文章目录 1. 总览2. 代码实现2.1. 日志配置2.2. ThreadPoolExecutor 父子线程信息不传递2.3. ContextPassThreadPoolExecutor 父子线程信息传递 3. 整体架构 1. 总览 在公司的项目中&#xff0c;为了解决慢接口问题&#xff0c;主线程经常会引入线程池并发调用下游的 RPC&…

pg_start_backup

pg_start_backup()函数在主库上发起一个在线备份&#xff0c;命令执行成功后&#xff0c;将数据文件拷贝到备份接口中 select pg_start_backup(full0918,false,false); 以上会话不要关闭&#xff0c;复制数据目录。 cp -r /pgdata/data/postgres-f66f5f7a/ /opt/qfusion/mnt/st…

Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 DiffUtil 是一个用于计算两个列表之间差异的实用程序类&#xff0c;它可以帮助 RecyclerView 以更高效的方式更新数据。使用 DiffUtil 可以减少…

行业落地分享:大模型 RAG 难点与创新应用

最近这一两周不少互联网公司都已经开始秋招面试了 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友解惑答疑…

网络信息传输安全

目录 机密性-加密 对称加密 非对称加密 身份认证 摘要算法和数据完整性 数字签名 签名验签 数字证书 申请数字证书所需信息 数字证书的生成 数字证书的应用 https协议 数字证书的申请 数据在网络中传输过程中&#xff0c;怎么做到 数据没有被篡改&#xff1f;hash算…

【Python深度学习系列】基于Flask将深度学习模型部署到web应用上(完整案例)

这是我的第356篇原创文章。 一、引言 使用 Flask 在 10 分钟内将您自己训练的模型或预训练的模型&#xff08;VGG、ResNet、Densenet&#xff09;部署到网络应用程序中。以图像分类模型为例&#xff0c;本地直接部署和本地使用docker部署两种方式实现。 二、实现过程 2.1 准备…

扎克伯格的未来愿景:用智能眼镜引领数字社交新时代

Meta Connect 2024大会前夕&#xff0c;创始人马克扎克伯格的90分钟播客访谈&#xff0c;为我们描绘了Meta未来的蓝图。这场访谈&#xff0c;不仅是大会的热身&#xff0c;更是对科技未来的一次深刻洞察。 人工智能 - Ai工具集 - 未来办公人的智能办公生活导航网 扎克伯格的未…

实操学习——题目的管理

实操学习——题目的管理 一、基础配置二、权限控制三、分页1. PageNumberPagination分页器2. LimitOffsetPagination分页器3.总结 四、题目操作模块1. 考试2. 题目练习——顺序刷题3. 模拟考试 补充&#xff1a;前端调用接口写法 本文主要讲解题目的管理案例 1.题目的基本增删改…

FastAPI 的隐藏宝石:自动生成 TypeScript 客户端

在现代 Web 开发中&#xff0c;前后端分离已成为标准做法。这种架构允许前端和后端独立开发和扩展&#xff0c;但同时也带来了如何高效交互的问题。FastAPI&#xff0c;作为一个新兴的 Python Web 框架&#xff0c;提供了一个优雅的解决方案&#xff1a;自动生成客户端代码。本…

必知!5大AI生成模型

大数据文摘授权转载自数据分析及应用 随着Sora、diffusion等模型的大热&#xff0c;深度生成模型再次成为了研究的焦点。这类模型&#xff0c;作为强大的机器学习工具&#xff0c;能够从输入数据中学习其潜在的分布&#xff0c;并生成与训练数据高度相似的新样本。其应用领域广…

【IDEA】使用IDEA连接MySQL数据库并自动生成MySQL的建表SQL语句

前言&#xff1a; 在软件开发过程中&#xff0c;数据库的设计与实现是至关重要的一环。IntelliJ IDEA作为一款强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了丰富的数据库工具&#xff0c;使得连接MySQL数据库并自动生成建表SQL语句变得简单快捷。本文将详细…

ansible远程自动化运维、常用模块详解

一、ansible是基于python开发的配置管理和应用部署工具&#xff1b;也是自动化运维的重要工具&#xff1b;可以批量配置、部署、管理上千台主机&#xff1b;只需要在一台主机配置ansible就可以完成其它主机的操作。 1.操作模式&#xff1a; 模块化操作&#xff0c;命令行执行…

竹云赋能“中国·贵州”全省统一移动应用平台建设,打造政务服务“新引擎”

近日&#xff0c;2024中国国际大数据产业博览会在贵州贵阳圆满落幕。会上&#xff0c;由贵州省政府办公厅牵头建设的“中国贵州”全省统一移动应用平台正式发布&#xff0c;聚焦民生办事、政务公开、政民互动、扁平高效、数据赋能五大模块&#xff0c;旨在打造公平普惠的服务平…