Day01-postgresql数据库基础入门培训

news2024/11/26 22:37:22

Day01-postgresql数据库基础入门培训

  • 1、PostgresQL数据库简介
  • 2、PostgreSQL行业生态应用
  • 3、PostgreSQL版本发展与特性
  • 4、PostgreSQL体系结构介绍
  • 5、PostgreSQL与MySQL的区别
  • 6、PostgreSQL与Oracle、MySQL的对比

1、PostgresQL数据库简介

  • PostgreSQL【简称:PG】是加州大学伯克利分校计算机系开发的,一个开源免费的关系式数据库管理系统,经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内相对高的声誉。

  • PostgreSQL可以运行在所有主流操作系统上,包括Linux、AIX、HP-UX、Solaris和Windows等34种平台。

  • PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。

  • PostgreSQL支持了大多数SQL标准的数据类型,包括整型、数值型、布尔型、字节型、字符型、日期型、时间型、二进制的大对像(图片、声音和视频)。

  • PostgreSQL的存储过程开发可以使用众多的程序语言,包括Java、Perl、Python、Ruby、Tcl、C/C++和自带的PL/pgSQL,其中的PL/pgSQL与Oracle的PL/SQL很相似,内置了数百个函数,功能从基本的算术计算和字符串处理到加密逻辑计算并与Oracle有高度兼容性。

  • PostgreSQL支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。

  • PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl和ODBC以及其他语言等,也包含各种文档。

  • PostgreSQL有很多高级功能,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。

  • PostgreSQL有很多高品质的图形化的PostgreSQL管理工具软件,包括开源和商业性质的。

  • PostgreSQL的源代码可以自由获取,它的授权是在非常自由的开源授权下,这种授权允许用户在各种开源或是闭源项目中使用、修改和发布PostgreSQL的源代码。用户对源代码的可以按用户意愿进行任何修改、改进。

  • PostgreSQL的快速发展是由于MySQL被Oracle公司收购导致的,同时在2019年微软官宣收购PostgreSQL初创公司Citus Data(OLAP:citus分布式插件)。

2、PostgreSQL行业生态应用

  • PostgreSQL被称为“世界上最先进的开源关系型数据库”,属于一专多长的全栈数据库,主要场景应用如下:

    • OLTP交易系统
    • OLAP、批处理、数据仓库
    • 空间与地理数据库(PostGIS)
    • 缓存系统、消息队列/流处理
    • 搜索索引、图数据库
    • NoSOL数据库
    • 时序数据库 【MySQL被称为“世界上最流行的开源关系型数据库”】
  • 在全球数据库排名中,PostgreSQL排名全球第四(统计时间:2023.06)

在这里插入图片描述

  • 在商业数据库当中,Oracle属于多专多长的全数据库,全球最强。
  • 在开源数据库当中,MySQL主要应用于互联网业务的OLTP,所以PostgreSQL弥补了MySOL在传统行业不擅长的方向,又解决了商业数据库的成本问题。
  • 随着信创项目的推动,国产数据库主要以Oracle、MySQL、PostgreSQL三个方向为主,目前以PostgreSQL开源进行二次开发的国产数据库应用越来越广,同时国内外使用的客户越来越多,比如:平安、苏宁、人寿、招商,DELL,富士通,SAP苹果,本田,丰田等。
  • PostgreSQL基于云平台的使用,如AWS、阿里云、腾讯、华为都有用到PG的社区版作为数据库可选方案之一

根据中国信通院发布的数据库发展研究报告2021,我国关系型数据库基于MySQL和PostgreSQL二次开发的数量依次占关系型数据库比例为28.40%和29.63%。

  • 从目前国内发布的产品来说,大部分都高度兼容Oracle。
  • 未来国内市场数据库主流的产品线为3种模式:
    • Oracle
    • PostgreSQL
    • MySQL(MySQL+MongoDB+Redis)

从国内外数据库源流分支来说(依托开源协议来构建或二次开发),源流于PostgreSQL的开源协议框架,据不完全准确统计,列举部分-Part1:

  • EDB(Enterprise Postgres Database)
  • PostGlS、Citus、Timescaledb、PipelineDB
  • GreenPlum
  • 电信TeleDB
  • 腾讯TDSQL PostgreSQL版(原TBase)
  • 阿里PolarDB for PostgreSQL/AnalyticDB PostgreSQL
  • 人大金仓KingBase

源流于PostgreSQL的开源协议框架,据不完全准确统计,列举部分-Part2:

  • 瀚高HighGo DB
  • 酷克HASHDATA
  • 优炫UXDB
  • 亚信AntDB
  • 偶数HAWQ
  • 华为GaussDB A(200+300)
  • 华为openGauss

源流于PostgreSQL的开源协议框架,据不完全准确统计-Part3

其中基于华为qpenGauss又包括-Part1:

  • 中国移动-磐维数据库
  • 中国联通-CUDB
  • 海量Vastbase
  • 恩墨MogDB
  • 神舟通用
  • 南大通用Gbase 8c/8s
  • 恒生电子LightDB

源流于PostgreSQL的开源协议框架,据不完准确统计-Part4

其中基于华为openGauss又包括-Part2:

  • 超聚变FusionDB
  • 虚谷伟业-有蓉数据库
  • 北京太阳塔LNXDB-RDS
  • 沐融信息MuDB
  • 天曦TXDB

3、PostgreSQL版本发展与特性

PostgreSQL最新正式版15.3(2023.6),2023年发布正式版16.1。

各版本发布的时间与生命周期如下:

image-20241003115234766

image-20241003115619611

postgresql各版本特性介绍:https://www.postgresql.org/about/featurematrix/
image-20241003165816158

PostgreSQL各版本特性介绍:

  • 1986年:Postgre诞生

  • 1989年:Postgres 1 发布

  • 1990年:Postgres 2 发布,重写了规则系统

  • 1991年:Postgres 3 发布,改进了规则系统,增加了对多种存储系统支持的能力,并且改进了查询引擎。

  • 1993年:Postgres 4 发布,随便用户与特性需求急剧增加,随后该项目正式终止

  • 1994年:新增SQL语言解释器,建立了Postgres95。

  • 1996年:Postgres改名PostgreSQL,正式社区化发展。

  • 1997年:PostgreSQL 6.0 发布,第一个正式版本,后续1997年~1999年期间陆续发布了6.1/6.2/6.3/6.4/6.5,新增的功能有:

    • 多列索引、序列、货币和时间数据类型,GEQO。
    • JDBC接口、触发器、服务端编程接口、约束,SOL92标准的子查询
    • 增加了可读视图、PL/pgTGL。
    • MVCC、临时表、更多的SOL语句支持。
  • 2001年:PostgreSQL7.0发布,增加了外键、JOIN连接。

  • 2001年:PostgreSQL7.1发布,增加了WAL预写式日志、外连接。

  • 2002年:PostgreSQL7.2发布,支持PostGlS,索引,函数,增加了PL/Python。

  • 2003年:PostgreSQL7.3发布,增加了模式、表函数、prepared query。

  • 2004年:PostgreSQL7.4发布,优化了JOIN和数据仓库函数。

  • 2005年:PostgreSQL8.0发布,支持Win平台/增加savepoints/表空间/时间点恢复。

  • 2005年:PostgreSQL8.1发布,性能增强、增加了两阶段提交、表分区、位图索引扫描、共享行锁、角色。

  • 2006年:PostgreSQL8.2发布,性能增强,增加了在线重建索引/咨询锁/热备

  • 2008年:PostgreSQL8.3发布,增加全文搜索、SQL/XML、枚举类型、UUID类型等

  • 2009年:PostgreSQL8.4发布,窗口查询,数据透视,递归查询,并行恢复,列级权限,CTE公用表表达式。

  • 2010年:PostgreSQL9.0发布,支持Windows 64位系统,增加内置二进制流复制、热备、内置升级功能。

  • 2011年:PostgreSQL9.1发布,增加同步复制、无日志表、序列快照隔离级别、SELinux集成、扩展、外部表,可写CTE公用表表达式。

  • 2012年:PostgreSQL9.2发布,增加级联流复制、原生JSON支持、增强锁管理、range类型、索引扫描、空间分区GIST索引。

  • 2013年:PostgreSQL9.3发布,增加触发器、视图、可写外部表、物化视图、复制功能增强,横向连接LATERAL JOIN、。

  • 2014年:PostgreSQL9.4发布,Linux大页支持,增加了JSONB、RANGE类型,ALTER SYSTEM语法、不阻塞读的刷新物化视图、动态注册/起停后台进程、逻辑API、GIN索引增强。

  • 2016年:PostgreSQL9.5发布,新的BRIN索引,增加UPSERT插入更新、CUBE/ROLLUP/GROUPING SETS分组集合等语法,行级安全

  • 2016年:PostgreSOL9.6发布,支持并行查询,FDW功能增强,多机同步standby,快速清空大表。

为了加快市场推广,跟进Oracle版本策略,平均每年发布一个大版本:

  • 2017年:PostgreSQL 10发布,支持逻辑复制,内置分区表,增强并行查询机制,数据库编程能力,并行功能增强,全文检索支持JSON和JSONB数据类型,估值计算,文本挖掘,物联网优化,GIS业务优化,图像搜索,基因测序,3D数据处理,机器学习UDF库等。

  • 2018年:PostgreSQL 11发布,分区表的改进与增强,存储过程支持事务,并行能力的增强,增加对JIT编译的支持,其它功能完善。

  • 2019年:PostgreSQL 12发布,分区性能提升,B树索引增强,公用表表达式(CTE),准备好的计划控制,即时编译,校验和控制,在线重建索引,支持SQL/JSONpath,支持生成列,新增 Pluggable Table Storage Interface等。

  • 2020年:PostgreSQL 13发布,Btree索引优化,支持增量排序,支持并行vacuum index,支持可信插件,支持扩展统计信息,支持hash aggregation使用磁盘存储,逻辑复制对分区表的支持。

  • 2021年:PostgreSQL 14发布,数据类型与函数更多支持,管理功能增强,复制和恢复增强,索引功能改进,性能提升,安全增强等。

  • 2022年:PostgreSQL 15发布,大数据集的排序性能提升,各类查询也进行了优化,支持使用LZ4、Zstandard算法进行压缩备份,引入了jsonlog数据格式用于日志记录,安全性增强,删除public模式的创建权限。

  • 2023年:PostgreSQL 16发布,可以实现级联逻辑复制,支持更多的并行查询,安全增强,监控管理增强。

4、PostgreSQL体系结构介绍

应用程序的访问架构

image-20241003173917642

PostgreSQL体系结构

它由共享内存、一系列后台进程和数据文件组成。

image-20241003174130643

PostgreSQL进程分为主进程与辅助进程。

主进程:

  • Postmaster进程是整个数据库实例的总控进程,负责启动关闭该数据库实例。

辅助进程:

  • SysLogger(系统日志)进程
  • BgWriter(后台写)进程
  • WALWrite(预写式日志)进程
  • PgArch(归档)进程
  • AutoVacuum(系统自动清理)进程
  • PgStat(统计收集)进程
  • CheckPoint(检查点)进程

PostgreSQL的逻辑结构分为实例、数据库、schema、对象;

实例中允许创建多个数据库,每个数据库中可以创建多个schema,每个schema下面可以创建多个对象。对象包括表、索引、视图、序列、函数等。

image-20241003174613843

表空间是物理结构,同一表空间下可以有多个数据库。

数据库是逻辑结构,是表、索引、视图、存储过程、函数等对象的集合,一个数据库下可以有多个schema。

模式是逻辑结构,是对数据库的逻辑划分。

在oracle中用户和schema基本上可以画上等同关系,但是pg中两者没有这样严格的对应关系

将数据文件中的空间从逻辑上划分成一个个页面(数据块)

数据页大小:默认为8K

(可支持4K=16TB,8K=32TB,16K=64TB,32K=128TB)

页面可以分成两种:

  • 数据页面:数据页面是用来存储用户数据的
  • 控制页面:控制页面用来管理这些数据页面

数据库共享缓存中的空间划分也是按页为基本单位,一个页的大小与数据文件中页的大小一致,这样便于整页读取数据文件,并放入到数据库Buffer中,从Buffer写入数据文件也同理,保证了缓存与数据文件结构和内容上的一致性。

数据库包含的文件种类:

  • 数据库文件:数据库对象,如:数据库、表,索引,序列等对象。
  • 控制文件:用来记录数据库集群的状态信息,如:版本信息、集群所管理的各种文件信息、检查点信息、事务状态信息等
  • 参数文件:存放数据库运行参数
  • 日志文件:记录数据修改操作的日志,用于系统发生故障时进行数据恢复。
  • 临时文件:存放数据库进行计算的过程中,生成的各种中间对象,如排序运算的外存归并单元。

PostgreSQL由一系列数据库组成。

一套PostgreSQL程序称之为一个数据库群集。

当initdb()命令执行后,template0,template1,和postgres数据库被创建。

template0和template1数据库是创建用户数据库时使用的模版数据库,他们包含系统元数据表。

initdb()刚完成后,template0和template1数据库中的表是一样的。但是template1数据库可以根据用户需要创建对象。用户数据库是通过克隆template1数据库来创建的;

一个表空间可以被多个数据库同时使用。此时,每一个数据库都会在表空间路径下创建为一个新的子路径。

创建一个用户表空间会在$PGDATA\pg_tblspc目录下面创建一个软连接,连接到表空间制定的目录位置。

PostgreSQL内存主要为分共享内存与本地内存。

共享内存
PostgreSQL启动后,会生成一块共享内存,用于做数据块的缓冲区,以便提高读写性能。WAL日志缓冲区和Clog缓冲区也存在共享内存中,除此之外还有全局信息比如进程、锁、全局统计等信息也保存在共享内存中。

其中最重要的组成部分是Shared Buffer和WAL Buffer。

本地内存

非全局存储的数据都存在本地内存中,主要包括:

临时缓冲区:用于访问临时表的缓冲区

work_mem:内部排序操作和Hash表在使用临时操作文件之前使用的存储缓冲区。

manintance_work mem:在维护操作比如:VACUUM(收集表和索引的统计信息,整理表和索引)、CREATE INDEX、ALTER TABLE ADD FOREIGN Key等中使用的内存缓冲区。

5、PostgreSQL与MySQL的区别

序号特性类型MySQLPostgreSQL
1实例与数据库1.通过MySQL命令(mysqld)启动实例);
2.一个实例可以管理一个或多个数据库;
3.一台服务器可以运行多个 mysqld 实例;
4.一个MySQL实例中的所有数据库共享同一个系统编目。
1.通过Postmaster 进程(pg_ctl)启动实例;
2.一个实例可以管理一个或多个数据库,这些数据库组成一个集群;
3.集群是磁盘上的一个区域,这个区域在安装时初始化并由一个目录组成,所有数据都存储在这个目录中;
4.使用 initdb 创建第一个数据库。一台机器上可以启动多个实例;
5.每个数据库有自己的系统编目,但所有数据库共享pg_databases
2配置文件my.confPostgresgl.conf
3数据库连接使用 CONNECT或 USE 语句连接数据库,这时要指定数据库名,还可以指定用户id和密码。使用 connect 语句连接数据库,这时要指定数据库名,还可以指定用户 id 和密码。
4客户机连接文件my.confpg_hba.conf
5数据缓冲区通过 innodb_buffer_pool _size参数设置数据缓冲区,这个参数最高可以设置为机器物理内存量的 80%。通过Shared_buffers参数设置数据缓冲区。在默认情况下分配64个缓冲区。默认的块大小是 8K。可以通过设置postgresql.conf 文件中的 shared_buffers 参数来更新缓冲冲区缓存。
6执行计划使用 EXPLAIN 命令查看查询的解释计划。使用 EXPLAIN 命令查看查询的解释计划,返回丰富的信息,
7备份恢复InnoDB 使用重做日志记录,支持在线和离线完全备份以及崩溃和事务恢复,也支持热备份。在数据目录的一个子目录中维护重做日志。支持在线和离线完全备份以及崩溃、时间点和事务恢复,可以支持热备份。
8取决于存储引擎。例如,NDB存储引擎支持分区表,内存引擎支持内存表。支持临时表、常规表以及范围和列表类型的分区表,不支持哈希分区表。由于PostgreSQL的表分区是通过表继承和规则系统完成了,所以可以实现更复杂的分区方式。
9索引1.取决存储引擎。MyISAM与InnoDB都支持BTREE
2.不支持函数索引,只能在创建基于具体列的索引
1.支持 B-树、哈希、R-树和 Gist 索引。
2.支持函数索引,同时还支持部分数据索引。
10约束支持主键、外键、唯一和非空约束。对检查约束进行解析,但是不强制实施。支持主键、外键、唯一、非空和检查约束。
11存储过程支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和C++ 编写。没有单独的存储过程,都是通过函数实现的。
12函数用户定义函数可以用 SQL、c 和 C++编写用户定义函数可以用 PL/pgSQL(专用的过程语言)、PL/TcI、PL/Perl、PL/Python、SQL和C编写。
13触发器支持事前、事后触发器和语句触发器,触发器语句用过程语言复合语句编写。支持事前、事后触发器和语句触发器,触发器过程用C编写。
14物化视图不支持物化视图。通过规则系统可以实现物化视图的功能。
15事务与锁支持表级和行级锁。
InnoDB 存储引擎支持读未提交(read-uncommitted)、不可重复读(read-committed)、可重复读(repeatable-read)、串行化(serializable)。
使用 SET TRANSACTION ISOLATION LEVEL语句在事务级设置隔离级别。
支持表级和行级锁。
支持的隔离级别是Read Committed(默认-看到查询启动时数据库的快照)和 Serialization(与 Repeatable Read 相似,只能看到在事务启动之前提交的结果)。
使用 SET TRANSACTION 语句在事务级设置隔离级别。
使用 SET SESSION 在会话级进行设置。
16DBLINK不支持database link。有dblink、FDW,可以连接到oracle和mysql上。

6、PostgreSQL与Oracle、MySQL的对比

image-20241003182021462

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

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

相关文章

搭建shopify本地开发环境

虽然shopify提供了在线编辑器的功能,但是远不及本地编辑器方便高效,这篇文章主要介绍如何在本地搭建shopify开发环境: 1、安装nodejs 18.2 2、安装git 3、安装shopify cli ,使用指令: npm install -g shopify/clilatest 4、安装ruby 5、…

软件设计师——数据结构

本博文所有内容来自于B站up主zst_2001 目录 时间复杂度 常规数据结构 链表 栈与队列 ​编辑 串 数组 树 卡特兰数: 平衡二叉树 哈夫曼 图 AOV 排序 顺序 折半 哈希 时间复杂度 常规数据结构 链表 栈与队列 串 找i位置前面的字符串&#xff0c…

JS | JavaScript中document.write()有哪些用法?

document.write()是 JavaScript 中用于向文档中插入内容的方法。它可以在文档加载过程中或在脚本执行时动态地将任意内容写入到 HTML 文档中。 document.write() 是 JavaScript 中的一个方法,用于在 HTML 文档中动态生成内容。 这个方法可以在网页加载过程中动态地…

Python 工具库每日推荐 【Pandas】

文章目录 引言Python数据处理库的重要性今日推荐:Pandas工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:销售数据分析案例分析高级特性数据合并和连接时间序列处理数据透视表扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeScrip…

重学SpringBoot3-集成Redis(一)

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(一) 1. 项目初始化2. 配置 Redis3. 配置 Redis 序列化4. 操作 Redis 工具类5. 编写 REST 控制器6. 测试 API7. 总结 随…

【复习】html最重要的表单和上传标签

文章目录 imgforminput img <img src"https://tse1-mm.cn.bing.net/th/id/OIP-C._XVJ53-pN6sDMXp8W19F4AAAAA?rs1&pidImgDetMain"alt"二次元"height"350px"width"200px"/>常用 没啥说的&#xff0c;一般操作css多一些 for…

Nacos理论知识+应用案例+高级特性剖析

一、理论知识 Nacos功能 Nacos常用于注册中心、配置中心 Nacos关键特性 1、服务发现和服务健康监测 nacos作为服务注册中心可用于服务发现,并支持传输层&#xff08;TCP&#xff09;和应用层(HTTP&#xff09;的健康检查&#xff0c;并提供了agent上报和nacos server端主动…

数据结构——List接口

文章目录 一、什么是List&#xff1f;二、常见接口介绍三、List的使用总结 一、什么是List&#xff1f; 在集合框架中&#xff0c;List是一个接口&#xff0c;通过其源码&#xff0c;我们可以清楚看到其继承了Collection。 Collection 也是一个接口&#xff0c;该接口中规范了后…

启动redis

1. 进入root的状态&#xff0c;sudo -i 2. 通过sudo find /etc/redis/ -name "redis.conf"找到redis.conf的路径 3. 切换到/etc/redis目录下&#xff0c;开启redis服务 4. ps aux | grep redis命令查看按当前redis进程&#xff0c;发现已经服务已经开启 5.关闭服务…

如何使用WPS软件里的AI工具?

在wps文档中随机位置&#xff0c;按两下键盘上的【CTRL】键&#xff0c;唤醒AI工具 然后&#xff0c;输入想要的问题后&#xff0c;按下【回车】&#xff0c;就会生成答案在文档中 如果答案是自己喜欢的&#xff0c; 则选择【保留】&#xff0c;即可保存在文档中 如果答案不是…

Arthas(阿尔萨斯)

Arthas Arthas可以为你做什么&#xff1f; 安装下载 //Linux环境下 wget https://alibaba.github.io/arthas/arthas-boot.jar //Windows环境下可以直接去官网下载压缩包 https://arthas.aliyun.com/doc/download.html//启动命令 java -jar arthas-boot.jar 启动阿尔萨斯&#…

使用Conda管理python环境的指南

1. 准备 .yml 文件 确保你有一个定义了 Conda 环境的 .yml 文件。这个文件通常包括环境的依赖和配置设置。文件内容可能如下所示&#xff1a; name: myenv channels:- defaults dependencies:- python3.8- numpy- pandas- scipy- pip- pip:- torch- torchvision- torchaudio2…

【我的 PWN 学习手札】tcache stash unlink

目录 前言 一、相关源码 二、过程图示 1. Unlink 过程 2. Tcache stash unlink 过程 三、测试与模板 1. 流程实操 2. 相关代码 前言 tcache stashing unlink atttack 主要利用的是 calloc 函数会绕过 tcache 从smallbin 里取出 chunk 的特性。并且 smallbin 分配后&…

IP 数据包分包组包

为什么要分包 由于数据链路层MTU的限制,对于较⼤的IP数据包要进⾏分包. 什么是MTU MTU相当于发快递时对包裹尺⼨的限制.这个限制是不同的数据链路对应的物理层,产⽣的限制. • 以太⽹帧中的数据⻓度规定最⼩46字节,最⼤1500字节,ARP数据包的⻓度不够46字节,要在后⾯补填 充…

【ONE·Web || HTML】

总言 主要内容&#xff1a;HTML基本知识入门&#xff0c;主要介绍了常见的一些标签使用&#xff0c;以及简单案例演示。       文章目录 总言0、前置说明1、认识HTML1.1、是什么1.2、初识 HTML 标签、HTML 文件基本结构1.2.1、相关说明1.2.2、vscode如何快速生成代码 2、HT…

实时数仓分层架构超全解决方案

传统意义上的数据仓库主要处理T1数据&#xff0c;即今天产生的数据分析结果明天才能看到&#xff0c;T1的概念来源于股票交易&#xff0c;是一种股票交易制度&#xff0c;即当日买进的股票要到下一个交易日才能卖出。 随着互联网以及很多行业线上业务的快速发展&#xff0c;让…

【精】Java编程中的Lambda表达式与Stream API

一、引言 随着Java 8的发布&#xff0c;引入了许多令人兴奋的新特性&#xff0c;其中最引人注目的就是Lambda表达式和Stream API。这些新功能不仅让Java这门语言更加现代化&#xff0c;而且也极大地提高了开发效率&#xff0c;使代码更加简洁、易读。本文将深入探讨Lambda表达…

Rust 做桌面应用这么轻松?Pake 彻底改变你的开发方式

Rust 做桌面应用这么轻松&#xff1f;Pake 彻底改变你的开发方式 网页应用装不下了&#xff1f;别担心&#xff0c;Pake 用 Rust 帮你打包网页&#xff0c;快速搞定桌面应用。比起动不动就 100M 的 Electron 应用&#xff0c;它轻如鸿毛&#xff0c;功能却一点都不少&#xff0…

案例-任务清单

文章目录 效果展示初始化面演示画面 代码区 效果展示 初始化面 演示画面 任务清单 代码区 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

Linux下的IO模型

阻塞与非阻塞IO&#xff08;Input/Output&#xff09; 阻塞与非阻塞IO&#xff08;Input/Output&#xff09;是计算机操作系统中两种不同的文件或网络通信方式。它们的主要区别在于程序在等待IO操作完成时的行为。 阻塞IO&#xff08;Blocking IO&#xff09; 在阻塞IO模式下…