导航:首页 > 编程语言 > postgresql服务器编程

postgresql服务器编程

发布时间:2022-07-12 23:54:12

Ⅰ 为什么postgrelsql的性能没有mysql好

一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。
二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。
三、PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型,相比之下mysql就差很多,instagram就是因为PG的空间数据库扩展POSTGIS远远强于MYSQL的my spatial而采用PGSQL的。

四、PG 的“无锁定”特性非常突出,甚至包括 vacuum 这样的整理数据空间的操作,这个和PGSQL的MVCC实现有关系。
五、PG 的可以使用函数和条件索引,这使得PG数据库的调优非常灵活,mysql就没有这个功能,条件索引在web应用中很重要。
六、PG有极其强悍的 SQL 编程能力(9.x 图灵完备,支持递归!),有非常丰富的统计函数和统计语法支持,比如分析函数(ORACLE的叫法,PG里叫window函数),还可以用多种语言来写存储过程,对于R的支持也很好。这一点上MYSQL就差的很远,很多分析功能都不支持,腾讯内部数据存储主要是MYSQL,但是数据分析主要是HADOOP+PGSQL。
七、PG 的有多种集群架构可以选择,plproxy 可以支持语句级的镜像或分片,slony 可以进行字段级的同步设置,standby 可以构建WAL文件级或流式的读写分离集群,同步频率和集群策略调整方便,操作非常简单。
八、一般关系型数据库的字符串有限定长度8k左右,无限长 TEXT 类型的功能受限,只能作为外部大数据访问。而 PG 的 TEXT 类型可以直接访问,SQL语法内置正则表达式,可以索引,还可以全文检索,或使用xml xpath。用PG的话,文档数据库都可以省了。
九,对于WEB应用来说,复制的特性很重要,mysql到现在也是异步复制,pgsql可以做到同步,异步,半同步复制。还有mysql的同步是基于binlog复制,类似oracle golden gate,是基于stream的复制,做到同步很困难,这种方式更加适合异地复制,pgsql的复制基于wal,可以做到同步复制。同时,pgsql还提供stream复制。
十,pgsql对于numa架构的支持比mysql强一些,比MYSQL对于读的性能更好一些,pgsql提交可以完全异步,而mysql的内存表不够实用(因为表锁的原因)

最后说一下我感觉 PG 不如 MySQL 的地方。
第一,MySQL有一些实用的运维支持,如 slow-query.log ,这个pg肯定可以定制出来,但是如果可以配置使用就更好了。
第二是mysql的innodb引擎,可以充分优化利用系统所有内存,超大内存下PG对内存使用的不那么充分,
第三点,MySQL的复制可以用多级从库,但是在9.2之前,PGSQL不能用从库带从库。
第四点,从测试结果上看,mysql 5.5的性能提升很大,单机性能强于pgsql,5.6应该会强更多.
第五点,对于web应用来说,mysql 5.6 的内置MC API功能很好用,PGSQL差一些。

另外一些:
pgsql和mysql都是背后有商业公司,而且都不是一个公司。大部分开发者,都是拿工资的。
说mysql的执行速度比pgsql快很多是不对的,速度接近,而且很多时候取决于你的配置。
对于存储过程,函数,视图之类的功能,现在两个数据库都可以支持了。
另外多线程架构和多进程架构之间没有绝对的好坏,oracle在unix上是多进程架构,在windows上是多线程架构。
很多pg应用也是24/7的应用,比如skype. 最近几个版本VACUUM基本不影响PGSQL 运行,8.0之后的PGSQL不需要cygwin就可以在windows上运行。
至于说对于事务的支持,mysql和pgsql都没有问题。

Ⅱ 常用数据库系统简介

码字不容易啊,望采纳。
ORACLE (甲骨文,美国)
优点:产品系列齐全,几乎囊括所有应用领域,大型,完善,安全,可以支持多个实例同时运行,功能强。能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
缺点:价格成本,服务费用,后期产品追加费用,管理维护相对麻烦,对硬件的要求高。
几乎匹配所有动态网页设计,性能优越。

SQLSERVER(微软,美国)
优点:简单,界面友好,上手容易,只能在WINDOWS平台下使用。一般用于.net 程序设计。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。
缺点:windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据量的关键业务时。
网页设计多与C#(也是微软的)经典组合,不过也是几乎开放所有开发语言接口
MYSQL (被oracle收购,收购后的新版已出,市场反应一般)
优点:免费,功能不错,是开源的,体积小,并发执行的数据库,如今mysql逐渐体现出性价比高的优势。
缺点:稳定性有待考量,面对大量数据的处理能力有限,并发性处理的机制不健全。
网页开发mysql的应用还是很多的,应用比较广泛。
DB2 (IBM 美国)
优点:优点很多啦,与oracle一样是大型以及超大型的数据库,能力当然很好啦,企业解决方案很牛X,在金融和电信方运用DB2的很多,最适于海量数据。DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上用DB2数据库服务器,而国内到97年约占5%。不过与oracle相比db2的应用相对较窄,一是价钱很贵,二是主要面向大型企业,市场份额还是oracle最高,所以db2专家较少,很吃香的。
以db2的优质能力相对海量并发的web服务和访问比较轻松啦。
Access(微软,美国):
优点:操作简洁、方便,不用依赖Server也可以对数据进行操作。
缺点:安全性不够,如果做为服务器的话,对服务器要求很高,否则容易造成 MDB 损坏,高强度操作适应性差,不能将 VBA 代码开发的软件系统直接编译成 EXE 可执行文件,不能脱离 ACCESS 或者 ACCESS RUNTIME 环境,该环境相对其他软件体积较大(50M左右),每个数据库文件最大限制只有2G,对于大型网站显然不能够胜任。
我接触的access应用比较少啦,关于开发的不了解了。
Sybase(Sybase 美国):
优点:操作简单,管理相对容易,对新手很好理解,上手快,曾经的sybase还是挺辉煌的,sybase 数据仓库还是挺不错,大数据的解决方案也不错,与oracle,db2齐名,但是之后似乎难以追随市场的脚步了。
缺点:Sybase使用的编程接口不是开放的,没有使用SQL92等相关的标准,因此编制存储程序和触发器所用的Transact-SQL也是它们自己专用的。 优化器(OPTIMIZER)不能有效的支持复杂的查询(ComplexQueries)。应用程序中稍微复杂一些的SQL语句,Sybase的优化器就无法妥善优化处理。已经退出主流数据库市场,市场份额缩水严重,被SAP收购后前途待观望。
web应用还是比较广泛的啦。
informix(被IBM收购):
优点:如今被IBM定位为作为IBM在线事务处理(OLTP)旗舰级数据服务系统,使用不是很广泛,IBM对Informix和DB2都有长远的规划,两个数据库产品互相吸取对方的技术优势。
缺点:INFORMIX是以小型数据库起家,所以其产品设计到目前为止仍有许多小型数据库的限制。许多用户都曾遇到INFORMIX在数据存储、日志管理、备份、恢复等方面的问题。Informix的扩展并行选项在支持多用户并发访问时存在困难。INFORMIX由于缺乏对大量数据的管理经验,所以其优化器技术也不能针对大量数据做优化。 小型企业可以尝试使用。
postgresql(美国):
优点:轻盈好用的数据库,有点很多,如优化排序性能,内存占用更少;表继承(很强),提高加锁效率和并发度;创建索引过程中允许INSERT/UPDATE/DELETE等等。
缺点:不足之处就是大数量的场景有待市场检验,目前触及海量数据的案例较少。

如果对你有帮助.请点击我的回答下方【选为满意回答】按钮

Ⅲ 四大开源数据库是哪些

开源世界中的那几个免费数据库
发布时间:2011-11-22 09:34:30 来源:CSDN 评论:0 点击:1476 次 【字号:大 中 小】
QQ空间 新浪微博 腾讯微博 人人网 豆瓣网 网络空间 网络搜藏 开心网 复制 更多 0
开源数据库MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源...

开源数据库MySQL

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。


盘点:开源社区那些免费的数据库软件

MySQL为多种编程语言提供了API,包括C、C++、C#、Delphi、Eiffel、Java、Perl、php、Python、Ruby和Tcl等。而其自身是采用C和C++编写的,使用了多种编译器进行测试,所以,MySQL能够保证源代码具有很强的可移植性。这样的一款数据库,自然能够支持几乎所有的操作系统,从Unix、linux到Windows,具体包括AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。最重要的是,它是一个可以处理拥有上千万条记录的大型数据库。

与此同时,MySQL也产生了很多分支版本的数据库也非常值得推荐。

首先是MariaDB,它是一个采用Maria存储引擎的MySQL分支版本,是由原来MySQL的作者 Michael Widenius创办的公司所开发的免费开源的数据库服务器。与MySQL相比较,MariaDB更强的地方在于它拥有更多的引擎,包括Maria存储引擎、PBXT存储引擎、XtraDB存储引擎、FederatedX存储引擎,它能够更快的复制查询处理、运行的速度更快、更好的功能测试以及支持对Unicode的排序等。

其次是rcona,它为MySQL数据库服务器进行了改进,在功能和性能上较MySQL有着很显着的提升。该版本提升了在高负载情况下的InnoDB的性能,同时,它还为DBA提供一些非常有用的性能诊断工具,并且提供很多参数和命令来控制服务器行为。

第三是Percona Server,它使用了诸如google-mysql-tools、Proven Scaling和 Open Query对MySQL进行改造。并且,它只包含MySQL的服务器版,并没有提供相应对 MySQL的Connector和GUI工具进行改进。

非关系型数据库NoSQL

从NoSQL的字面上理解,NoSQL就是Not Only SQL,被业界认为是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。


盘点:开源社区那些免费的数据库软件

当然,NoSQL也是随着互联网Web2.0网站的兴起才能取得长足的进步。关键的需求在于,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

首先推荐的是Oracle NoSQL Database,这是一个社区版。Oracle的这个NoSQL Database, 是在10月4号的甲骨文全球大全上发布的Big Data Appliance的其中一个组件,Big Data Appliance是一个集成了Hadoop、NoSQL Database、Oracle数据库Hadoop适配器、Oracle数据库Hadoop装载器及R语言的系统。

其次推荐的是Membase。Membase是NoSQL家族的一个新的重量级的成员。Membase是开源项目,源代码采用了Apache2.0的使用许可。该项目托管在GitHub.Source tarballs上,目前可以下载beta版本的Linux二进制包。该产品主要是由North Scale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师,这两个组织都是很大的在线游戏和社区网络空间的供应商。

并且,Membase容易安装、操作,可以从单节点方便的扩展到集群,而且为memcached(有线协议的兼容性)实现了即插即用功能,在应用方面为开 发者和经营者提供了一个比较低的门槛。做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用,其中 Memcached的部分基础代码被直接应用到了Membase服务器的前端。通过兼容多种编程语言和框架,Membase具备了很好的复用性。在安装和配置方面,Membase提供了有效的图形化界面和编程接口,包括可配置 的告警信息。

Membase的目标是提供对外的线性扩展能力,包括为了增加集群容量,可以针对统一的节点进行复制。 另外,对存储的数据进行再分配仍然是必要的。

第三推荐的是Hibari。Hibari在日语中意思为“云雀”,它是一个专为高可靠性和大数据存储的数据库引擎,可用于云计算环境中,例如 webmail、SNS和其他要求T/P级数据存储的环境中。同时,Hibari也支持Java,C/C++,Python,Ruby和Erlang语言的客户端。

第四推荐的是memcachedb。这是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。

第五推荐的是Leveldb。这是一个Google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计,特别是LSM算法。LevelDB是单进程的服务,性能非常之高,在一台4个Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。

XML数据库的优势

XML数据库是一种支持对XML格式文档进行存储和查询等操作的数据管理系统。在系统中,开发人员可以对数据库中的XML文档进行查询、导出和指定格式的序列化。目前XML数据库有三种类型:XMLEnabledDatabase(XEDB),即能处理XML的数据库;NativeXMLDatabase(NXD),即纯XML数据库;HybridXMLDatabase(HXD),即混合XML数据库。

关系数据库中的第一代XML支持是切分(或分解)文档,以适应关系表格或将文档原封不动地存储为字符或二进制大对象(CLOB 或 BLOB)。这两个方法中的任一种都尝试将XML模型强制转换成关系模型。然而,这两种方法在功能和性能上都有很大的局限性。混合型模型将XML存储在类似于DOM的模型中。XML数据被格式化为缓冲数据页,以便快速导航和执行查询以及简化索引编制。

在这里,首要要推荐的XML数据库是Sedna。它号称是一款原生态的XML数据库,提供了全功能的核心数据库服务,包括持久化存储、ACID事务、索引、安全、热备、UTF8等。实现了 W3C XQuery 规范,支持全文搜索以及节点级别的更新操作。

第二款XML数据库是BaseX。这款数据库用来存储紧缩的XML数据,提供了高效的 XPath和XQuery的实现,同时,它还提供一个前端操作界面。


盘点:开源社区那些免费的数据库软件

第三款推荐的是XMLDB。这款数据库使用了关系型数据库来存储任意的XML文档,因为所采用的存储机制,所以文档的搜索速度特别快,同时执行XSL转换也相当快。XMLDB同时还提供了一个PHP的模块,可以应用在Web应用中。

第四块推荐的是X-Hive/DB。它是一个为需要高级XML数据处理和存储功能的软件开发者设计的强大的专属XML数据库。X-Hive/DB Java API包含存储、查询、检索、转换和发表XML数据的方法。

与传统关系型数据库相比,XML数据库具有以下优势:第一,XML数据库能够对半结构化数据进行有效的存取和管理。如网页内容就是一种半结构化数据,而传统的关系数据库对于类似网页内容这类半结构化数据无法进行有效的管理。第二,提供对标签和路径的操作。传统数据库语言允许对数据元素的值进行操作,不能对元素名称操作,半结构化数据库提供了对标签名称的操作,还包括了对路径的操作。第三,当数据本身具有层次特征时,由于XML数据格式能够清晰表达数据的层次特征,因此XML数据库便于对层次化的数据进行操作。XML数据库适合管理复杂数据结构的数据集,如果己经以XML格式存储信息,则XML数据库利于文档存储和检索;可以用方便实用的方式检索文档,并能够提供高质量的全文搜索引擎。另外XML数据库能够存储和查询异种的文档结构,提供对异种信息存取的支持。

Ⅳ PostgreSQL 有哪些经典入门书籍

如果只是使用的话,文档足够了。非常的详细,可以根据需要选择着看。也有一本PostgreSQL服务器编程的书,想深入可以一读。如果只是使用的话,文档足够了。非常的详细,可以根据需要选择着看。也有一本PostgreSQL服务器编程的书,想深入可以一读。

Ⅳ 我在linux下安装了postgresql,但是启动时候说服务器启动失败!9.5版本。哪位打什么帮忙解决下

我用ubuntu,所以不大懂yum具体怎么操作,但我想应该与apt的功能差不多。首先,postgresql是很有名的数据库,你用不着指定具体的版本。你可以直接用yum去查询源或者库里是否有这个软件(具体操作请参考yum的文档,我这边是apt-cachesearchpostgresql)当然,如果你用新立得的话,它的编辑菜单里有个按任务安装软件,里面有postgresql数据库的选项。安装postgresql之后难免要配置它。你也许会很奇怪,安装的过程中没有提示你添加用户或者添加数据库密码(在ubuntu上就是这样,不知道红帽是什么样的情况)。其实,随着数据库的安装,已经添加了用户postgres,你要做的是先登录到这个用户的shell下,再添加你需要的实用用户。按照我的操作,是这样的,先passwdpostgres改掉本地用户postgres的密码然后用这个postgres登录到系统(可以Ctrl+Alt+F1-F5来切换虚拟控制台)。createuser本地帐户##如果你本地用户名是joe,那么就createuserjoe会提示你是否创建超级用户。一般来说都会建一个超级用户来管理,当然你也可以选择建立一个普通的用户。现在基本上就配置完毕了,回到你刚才的用户登录,例如joe,可以用psql来登录到postgresql了。如果你需要编程登录数据库,那么你得先建库,再建role,然后通过role登录。打个比方,用php登录到postgresql,使用PEAR的MDB2软件包登录,你可以这样createdb##假设你为当前用户(本地帐户)建立了一个超级数据库用户(角色,role),该命令会建立一个与当前用户同名的数据库,可以指定数据库名来建别的库。psql##以超级用户登录到数据库(与本地用户同名)alterrole本地用户名password'newpassword';##为本地数据库用户(角色)建立一个密码,这个密码将来用于你编程登录数据库现在可以用本地用户作为角色通过php编程登录数据库了,因为密码和用户名都是已知的了。当然,用超级用户登录数据库有安全问题,如果你建立一个普通角色的话,需要给普通用户赋权,这个问题需要你参考postgresql的用户手册,网络文库里有英文9.1的用户手册,查询权限一节即可解决此问题。或者,可以使用pgadmin这一图形界面来解决权限等问题。

阅读全文

与postgresql服务器编程相关的资料

热点内容
重生之北美建国 浏览:128
每天工作4小时的程序员 浏览:461
香港学生犯罪电影 浏览:867
0855aa 浏览:504
哪里买小电影软件 浏览:856
无法连接服务器上不了怎么处理 浏览:247
android怎样读 浏览:615
螺纹底经算法 浏览:781
西门子plc编程官网 浏览:611
宝宝吃进口燕窝溯源码 浏览:319
重生国民党残军称王小说 浏览:531
铁路停时算法 浏览:698
姜恩惠主演的电影 浏览:987
保存密码删除文件夹 浏览:320
岛国电影app 浏览:547
从命令模式切换为编辑模式 浏览:94
南京噪音小压缩机配件 浏览:432
编程改变角色的速度 浏览:316
猎杀k线主图源码 浏览:173
ros单片机节点 浏览:670