首页数据库postgre数据库,为什么postgrelsql的性能没有mysql好

postgre数据库,为什么postgrelsql的性能没有mysql好

编程之家2023-10-17109次浏览

本篇文章给大家谈谈postgre数据库,以及为什么postgrelsql的性能没有mysql好对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

postgre数据库,为什么postgrelsql的性能没有mysql好

linux怎样导入postgre数据库

数据库的导出和导入很重要,一个网站什么比较值钱,就是数据,做好备份很重要。

1,查看一下原数据库

-bash-3.2$ psql-U playboy-d playboy//原数据库

Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

type: copyright for distribution terms

h for help with SQL commands

postgre数据库,为什么postgrelsql的性能没有mysql好

? for help with psql commands

g or terminate with semicolon to execute query

q to quit

playboy=> dt;

List of relations

postgre数据库,为什么postgrelsql的性能没有mysql好

Schema| Name| Type| Owner

--------+------------+-------+---------

public| contents| table| playboy

public| entries| table| playboy

public| properties| table| playboy

public| settings| table| playboy

public| test| table| playboy

(5 rows)

playboy=> q

2,导出数据库和表

-bash-3.2$ pg_dump-O playboy>/var/lib/pgsql/data/playboy2013.sql//导出playboy数据库

-bash-3.2$ pg_dumpall>/var/lib/pgsql/data/all_databases2013.sql//导出全部数据库

-bash-3.2$ pg_dump-O playboy-Ft-t test>/var/lib/pgsql/data/playboy_test2013.tar//导出一张表.tar的文件供pg_restore

-bash-3.2$ ls/var/lib/pgsql/data|grep 2013//查看一下导好了

playboy2013.sql all_databases2013.sql playboy_test2013.tar

3,创建新数据库,并导入

-bash-3.2$ psql-U playboy-d playboy//原数据库

Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type: copyright for distribution terms

h for help with SQL commands

? for help with psql commands

g or terminate with semicolon to execute query

q to quit

playboy=> dt;

List of relations

Schema| Name| Type| Owner

--------+------------+-------+---------

public| contents| table| playboy

public| entries| table| playboy

public| properties| table| playboy

public| settings| table| playboy

public| test| table| playboy

(5 rows)

playboy=> q

-bash-3.2$ createdb playboy_test-O playboy//创建一个归属playboy的数据库playboy_test

CREATE DATABASE

-bash-3.2$ pg_restore-d playboy_test/var/lib/pgsql/data/playboy_test2013.tar//导入单表,

//将上面导入表删除后,在把playboy的数据库导入到playboy_test中去,权限归属playboy

-bash-3.2$ psql-d playboy_test-U playboy-f/var/lib/pgsql/data/playboy2013.sql

set

SET

SET

COMMENT

SET

CREATE SEQUENCE

setval

--------

18

(1 row)

SET

SET

CREATE TABLE

CREATE SEQUENCE

setval

--------

4

(1 row)

CREATE TABLE

CREATE TABLE

CREATE SEQUENCE

setval

--------

3

(1 row)

CREATE TABLE

CREATE TABLE

ALTER TABLE

ALTER TABLE

ALTER TABLE

ALTER TABLE

ALTER TABLE

CREATE INDEX

REVOKE

REVOKE

GRANT

GRANT

-bash-3.2$ psql-U playboy-d playboy_test//登录到playboy_test

Welcome to psql 8.1.23, the PostgreSQL interactive terminal.

Type: copyright for distribution terms

h for help with SQL commands

? for help with psql commands

g or terminate with semicolon to execute query

q to quit

playboy_test=> dt;//查看一下表,根playboy数据库一样的。

List of relations

Schema| Name| Type| Owner

--------+------------+-------+----------

public| contents| table| playboy

public| entries| table| playboy

public| properties| table| playboy

public| settings| table| playboy

public| test| table| playboy

(5 rows)

pgsql导入写法比较多,上面已经有二种了,在说一种

-bash-3.2$ psql-U playboy playboy_test</var/lib/pgsql/data/playboy2013.sql

什么是Postgres

PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL可以用许多方法扩展,比如,通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。

为什么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都没有问题。

OK,本文到此结束,希望对大家有所帮助。

安满智孕宝(安满倍御和智孕宝区别)域名转换 域名与ip地址通过什么转换