一样、 PostgreSQL 的安居乐业极强, Innodb
等引擎在倒、断电之类的厄场景下抗打击能力有矣长足进步,然而无数 MySQL
用户还赶上过Server级的数据库丢失的现象——mysql系统库是MyISAM的,相比之下,PG数据库及时点只要好有的。
亚、任何系统还出其的性极限,在青出于蓝并发读写,负载逼近极限下,PG的性能指标仍好维持双曲线甚至对数曲线,到终极随后不再下降,而
MySQL
明显出现一个波峰后低落(5.5本子后,在商店级版本被有只插件可以改善过多,不过要付费)。
其三、PG 多年来在 GIS
领域处于优势地位,因为她产生长的几乎何类型,实际上不止几哪里类型,PG有大量字典、数组、bitmap
等数据类型,相比之下mysql就不同多,instagram就是以PG的空间数据库扩展POSTGIS远远强给MYSQL的my
spatial而采用PGSQL的。

奥地利符号计算研究所(Research Institute for Symbolic
Computation,简称RISC)的Christoph
Koutschan博士当祥和之页面上公布了一样篇稿子,提到他举行了一个考察,参与者大多数是电脑科学家,他恳请这些科学家投票选出最关键的算法,以下是这次调研之结果,按照英文名称字母顺序排序。

季、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的内存表不足够实用(因为表锁的来由)

  1. A*
    搜索算法——图形搜索算法,从于定起点到给定终点计算起路径。其中使用了平栽启发式的估价,为每个节点估算通过该节点的最佳路径,并盖之也各个地方排定次序。算法为得的先后访问这些节点。因此,A*搜索算法是最佳优先找的范例。
  2. 集束搜索(又名定向寻找,Beam
    Search)——最佳优先搜索算法的优化。使用启发式函数评估其检查的每个节点的力。不过,集束搜索只能于每个深度中发现极其前面的m个最符合条件的节点,m是固定数字——集束的升幅。
  3. 次分查找(Binary
    Search)——在线性数组中寻觅就定值的算法,每个步骤去丢一半不符合要求的数量。
  4. 分界定算法(Branch and
    Bound)——在多无比优化问题中找特定最优化解决方案的算法,特别是本着离散、组合的最为优化。
  5. Buchberger算法——一栽数学算法,可拿那个就是对单变量最大公约数求解的欧几里得算法和线性系统中高斯消元法的泛化。
  6. 数据压缩——采取一定编码方案,使用还不见的字节数(或是其他信息承载单元)对信息编码的进程,又受来编码。
  7. Diffie-Hellman密钥交换算法——一种植加密协议,允许双方于预先不打听对方的场面下,在非安全的通信信道中,共同建立共享密钥。该密钥以后可与一个对称密码并,加密持续报道。
  8. Dijkstra算法——针对没负值权重边的起往图,计算中的纯起点最短算法。
  9. 离散微分算法(Discrete differentiation)
  10. 动态规划算法(Dynamic
    Programming)——展示互相覆盖的支行问题跟最好优子架构算法
  11. 欧几里得算法(Euclidean
    algorithm)——计算两单整数的最大公约数。最古老的算法有,出现在公元前300面前欧几里得之《几哪原本》。
  12. 巴-最老算法(Expectation-maximization
    algorithm,又名EM-Training)——在统计计算中,期望-最酷算法在概率模型中检索可能最充分的参数估算值,其中模型依赖让无发现的神秘变量。EM在点滴独步骤中交替计算,第一步是测算期望,利用对逃匿变量的幸存估计价值,计算其最为特别或估计值;第二步是最大化,最大化在率先步上求得的无限要命或价值来计量参数的价值。
  13. 高速傅里叶变换(Fast Fourier
    transform,FFT)——计算离散的傅里叶变换(DFT)及其反转。该算法应用范围很广泛,从数字信号处理及解决偏微分方程,到飞速计算大整数乘积。
  14. 梯度下降(Gradient
    descent)——一种植数学上的极其优化算法。
  15. 哈希算法(Hashing)
  16. 堆排序(Heaps)
  17. Karatsuba乘法——需要好上千员整数的乘法的网遭到采取,比如计算机代数系统和命运程序库,如果运用长乘法,速度太慢。该算法发现给1962年。
  18. LLL算法(Lenstra-Lenstra-Lovasz  lattice
    reduction)——以格规约(lattice)基数为输入,输出短正交向量基数。LLL算法在以下公共密钥加密方法被产生恢宏运:背包加密系统(knapsack)、有特定设置的RSA加密等等。
  19. 顶可怜流量算法(Maximum
    flow)——该算法试图从一个流量网络中找到最好酷的流动。它优势于定义也找到这么一个流动的价值。最充分流动问题可以看作更扑朔迷离的网络流问题之特定情景。最可怜流动与网络中之界面有关,这便是不过深流-最小段定理(Max-flow
    min-cut theorem)。Ford-Fulkerson 能找到一个流网络中的绝特别流动。
  20. 统一排序(Merge Sort)
  21. 牛顿法(Newton’s
    method)——求非线性方程(组)零点的一样种要的迭代法。
  22. Q-learning学习算法——这是平等种植通过上动作值函数(action-value
    function)完成的深化学习算法,函数采取以给定状态的加以动作,并计算起要之效益价值,在事后准一定的国策。Q-leanring的优势是,在未需要环境模型的图景下,可以比可采纳行动的盼望效用。
  23. 有限不好筛法(Quadratic
    Sieve)——现代整数因子分解算法,在实践中,是眼下既领略第二尽早的此类算法(仅次于数域筛法Number
    Field
    Sieve)。对于110号以下的十号整数,它以是极端抢的,而且都看它们比数域筛法更简明。
  24. RANSAC——是“RANdom SAmple
    Consensus”的缩写。该算法根据同样层层观察得到的多少,数据中富含异常值,估算一个数学模型的参数值。其基本假设是:数据包含非异化值,也尽管是能透过一些模型参数解释的值,异化值就是那些休切合模型的数据点。
  25. RSA——公钥加密算法。首个适用于以签署作为加密的算法。RSA以电商行业受到本普遍利用,大家吧信任她有足够安全长度的公钥。
  26. Schönhage-Strassen算法——在数学中,Schönhage-Strassen算法是用来形成大整数的乘法的很快渐近算法。其算法复杂度为:O(N
    log(N) log(log(N))),该算法使用了傅里叶变换。
  27. 单纯型算法(Simplex
    Algorithm)——在数学的优化理论被,单纯型算法是常用之技艺,用来找到线性规划问题的数值解。线性规划问题概括于同样组实变量上的一致层层线性不等式组,以及一个守候最大化(或太小化)的固定线性函数。
  28. 奇异值分解(Singular value
    decomposition,简称SVD)——在线性代数中,SVD是重中之重之实数或复数矩阵的解说方法,在信号处理同统计中产生强运,比如计算矩阵的伪逆矩阵(以求解最小二乘法问题)、解决超定线性系统(overdetermined linear
    systems)、矩阵逼近、数值天气预报等等。
  29. 求解线性方程组(Solving a system of linear
    equations)——线性方程组是数学中不过古老的题材,它们有成百上千应用,比如当数字信号处理、线性规划中之估价和预测、数值分析中之非线性问题逼近等等。求解线性方程组,可以利用高斯—约当消去法统计(Gauss-Jordan
    elimination),或是柯列斯基说( Cholesky decomposition)。
  30. Strukturtensor算法——应用为模式识别领域,为具有像从找有同样种计算办法,看看该像素是否处于同质区域( homogenous
    region),看看她是否属边缘,还是是一个顶。
  31. 合并查找算法(Union-find)——给得一组元素,该算法常常为此来管这些因素分为多单分别的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。合并查找算法可以在斯种植数据结构上到位两只有效之操作:
    • 摸:判断有一定元素属于哪个组。
    • 合并:联合或联合两只组为一个组。
  32. 维特比算法(Viterbi
    algorithm)——寻找藏身状态最好有或序列的动态规划算法,这种序列被喻为维特于路径,其结果是一样雨后春笋可以观测到之波,特别是在隐藏的Markov模型中。

最终说一样下自己深感 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差有。

上述就是是Christoph博士对极端要之算法的调查结果,InfoQ的读者们?你们熟悉哪些算法?又起怎样算法是你们经常应用的?

除此以外一些:
pgsql和mysql都是背后有生意铺面,而且都未是一个合作社。大部分开发者,都是以工资的。
说mysql的实践进度比较pgsql快多凡尴尬的,速度接近,而且不少早晚在你的配备。
于仓储过程,函数,视图之类的法力,现在简单单数据库都得以支撑了。
此外多线程架构和多进程架构之间无绝对的高低,oracle在unix上是大抵进程架构,在windows上是多线程架构。
多pg应用为是24/7的以,比如skype. 最近几乎独本子VACUUM基本无影响PGSQL
运行,8.0随后的PGSQL不需要cygwin就可在windows上运行。
至于说于工作的支持,mysql和pgsql都没有问题。

原稿地址:http://www.zhihu.com/question/20010554 

PostgreSQL运行于CentOS时欲改的操作系统配置

初识PostgreSQL