商用应该不收费的。在PostgreSQL的文档中有这么一段话:
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站设计、平阴网络推广、小程序定制开发、平阴网络营销、平阴企业策划、平阴品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供平阴建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
And because of the liberal license, PostgreSQL can be used, modified, and distributed by anyone free of charge for any purpose, be it private, commercial, or academic.
意思就是因为PostgreSQL的实验性,它能免费地被使用、修改、分发用于任何用途。所以,商用也是免费的。
相关文档直接在PostgreSQL官网就可以找到。
一、何謂PHP? PHP的全名為Hypertext Preprocessor,它是個被廣泛運用在網頁程式撰寫的語言,尤其是它能適用於網頁程式的開發及能夠嵌入HTML文件之中,它的語法和C、Java及Perl等語法相似,且學習起來更容易上手。PHP的目地是為了能使網站開發者可以快速地撰寫動態網頁。 下面的範例將說明如何將PHP嵌入HTML文件之中。 Example: html head titleExample/title /head body ?php echo "Hi, I'm a PHP script!"; ? /body /html 請注意上面這個範例,若是以其它的程式語言來寫出相同的效果,程式會有何不同之處。你能輕易的將PHP程式碼嵌入HTML的文件之中,以上面這個例子而言,執行之後它能輸出一些文字。PHP的程式碼是封閉在起始(?php)與結束(?)的標籤之中,如此就能輕易的進入或是離開"PHP模式"。 PHP的程式碼是在伺服器上執行,所以如果你將類似上面範例的程式放在你的伺服器上執行的話,用戶端所獲得的是程式執行之後的結果,因此用戶端無法知道程式碼的內容是什麼。 二、PHP能夠做些什麼? PHP是在伺服器端執行的程式語言,所以任何其它的CGI程式所能做得到的,它都能做到。像是從表單中收集資料,或是產生動態的網頁內容,或者是傳送及接收cookies等等,PHP都能做得到! PHP主要運用在下列這三個部份 伺服器端的程式語言:PHP大多數被使用在這個地方,要運用在這個地方你必需要有三樣東西,一個是PHP的剖析器(CGI或Server模組),一個是網站伺服器,還有一個則是網頁瀏灠器,如此才能透過伺服器來瀏灠PHP網頁。 Command line scripting:你可以使PHP執行在一個沒有任何伺服器或是瀏灠器的地方,你只需要使用到一個PHP剖析器即可。這種大多是使用cron指令(在*nix或Linux系統上),或是使用排定的工作(Windows)來定期的執行程式,這些程式能夠運用在簡單的文字處理工作。 撰寫用戶端GUI應用程式:PHP也許不是個用來撰寫視窗應用程式最好的語言,但如果你相當的了解PHP,你可以使用PHP最新的特色,那就是使用PHP-GTK來撰寫用戶端的應用程式,使用PHP-GTK你也可以撰寫出跨平台的應用程式。 PHP能使用在大多數的作業系統,像是Linux、HP-UX、Solaris、OpenBSD、Microsoft Windows、Mac OS X、 RISC OS等等都能使用。PHP也能在大多數的網站伺服器上執行,像是Apache、 Microsoft Internet Information Server、Personal Web Server、Netscape and iPlanet servers、Oreilly Website Pro server、Caudium、Xitami、 OmniHTTPd。在大多數的伺服器中,PHP被編譯其中的一個模組,但PHP也能編譯成CGI模式,使PHP成為一個CGI處理程序。 PHP的功用不單單只是輸出HTML文件而己,它的功能還包括了輸出圖形、PDF檔、及Flash檔。你當然也可以讓它輸出一些文字,像是XHTML及任何其它的XML檔,PHP可以產生出以上這些檔案,並且將它們儲存在伺服器上。PHP也提供了相當多的協定,像是LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM等等,還有其它相當多的擴充模組可以使用。 PHP也支援相當廣泛種類的資料庫,所以在撰寫網頁時,使用到資料庫變成是相當的容易了,目前所支援的資料庫種類如下面所列。 Adabas D Ingres Oracle (OCI7 and OCI8) dBase InterBase Ovrimos Empress FrontBase PostgreSQL FilePro (read-only) mSQL Solid Hyperwave Direct MS-SQL Sybase IBM DB2 MySQL Velocis Informix ODBC Unix dbm
你可以试试用命令行把表结构导出到文本文件,然后copy到word文档
psql -d 数据库名称 -U 用户名 -c "\d 表名称" file.txt
目 录
总 结
PostgreSQL 通过调用系统 fsync() 或者其他使得事务内容写入到物理磁盘,这样可以保证操作系统或者数据库出现宕机后,仍然可以恢复到某一个一致性的状态。理论上讲 PostgreSQL 的 fsync 功能关闭,可以实现性能的提升,但是带来的影响就是需要承担数据的丢失,因为出现系统宕机或者数据库崩溃的时候有一些数据是没有落盘的。
本文将验证 fsync 参数的性能影响,以及参数关闭时数据库宕机后的影响。
数据量:1000W
fsync 参数:on
初始化表:user_info
pgbench 压测
pgbench 结果
pgbench 压测
pgbench 结果
数据量:1000W
fsync 参数:off
初始化表:user_info
pgbench 压测
pgbench 结果
pgbench 压测
pgbench 结果
通过对比发现,将 fsync 改为 off,对于读 TPS,参数 fsync 的影响不大,对于写 TPS,性能有一定提升。
现在验证参数关闭时数据库宕机后的影响
首先,使用将数据库性能跑起来
然后,模拟服务器断电
之后,启动数据库
提示信息:比致命错误还过分的错误。
结果:数据库无法启动,原因就是因为无法找到一个有效的 checkpoint 记录,这就是因为 fsync 设置为 off,由于数据库异常宕机导致。可以通过使用 pg_resetxlog 恢复数据库,但是会造成部分数据无法找回,数据丢失;也可以通过备份恢复,同样也会丢失部分数据。
fsync 参数对于读 TPS 的性能影响不大,对于写 TPS 的性能有一些影响,设置为 off,写 TPS 性能有一定提升,但是存在数据库宕机后无法正常启动,即使恢复后启动数据库,也会有数据丢失的很大风险。因此生产环境非必要时,不要将此参数设置为 off,还是使用默认的 on 比较稳妥。