PostgreSQL 和 MySQL 是將數據組織成表的關系數據庫。這些表可以根據每個表共有的數據鏈接或關聯。關系數據庫使您的企業(yè)能夠更好地了解可用數據之間的關系,并幫助獲得新的見解以做出更好的決策或發(fā)現新的機會。
創(chuàng)新互聯建站專注于天壇街道企業(yè)網站建設,成都響應式網站建設,成都做商城網站。天壇街道網站建設公司,為天壇街道等地區(qū)提供建站服務。全流程按需制作網站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯建站專業(yè)和態(tài)度為您提供的服務
PostgreSQL 和 MySQL 都依賴于 SQL(結構化查詢語言),這是與管理系統交互的標準語言。SQL 允許使用具有簡單結構的幾行源代碼連接表,大多數非技術員工可以快速學習。
使用 SQL,分析師不需要知道訂單表在磁盤上的位置、如何執(zhí)行查找以查找特定訂單或如何連接訂單表和客戶表。數據庫編譯查詢并計算出正確的數據點。
MySQL 和 PostgreSQL 都支持 JavaScript Object Notation (JSON) 存儲和傳輸數據,盡管 PostgreSQL 也支持 JSONB,這是 JSON 的二進制版本,它消除了鍵的重復和無關的空格。
除了傳統的支持機制外,這兩個數據庫都提供強大的社區(qū)支持。
PostgreSQL,也稱為 Postgres,是一種開源關系數據庫,因其可靠性、靈活性和對開放技術標準的支持而享有盛譽。PostgreSQL 支持非關系和關系數據類型。它被稱為當今可用的最兼容、最穩(wěn)定和最成熟的關系數據庫之一,并且可以輕松處理復雜的查詢。
PostgreSQL 的特性包括:
PostgreSQL 這是一個“一刀切”的解決方案,適用于許多尋求經濟高效的方法來改進其數據庫管理系統 (DBMS) 的企業(yè)。它具有足夠的可擴展性和多功能性,可以通過強大的擴展生態(tài)系統快速支持各種專業(yè)用例,涵蓋時間序列數據類型和地理空間分析等工作。作為開源數據庫解決方案構建的 PostgreSQL 完全不受許可限制、供應商鎖定的可能性或過度部署的風險。PostgreSQL 通過對象關系數據庫管理系統 (ORDBMS) 進行管理。
PostgreSQL 負責管理業(yè)務活動的在線事務處理 (OLTP)協議的企業(yè)數據庫管理員提供了理想的解決方案,包括電子商務、客戶關系管理系統 (CRM) 和財務分類帳。它也是管理接收、創(chuàng)建和生成的數據分析的理想選擇。
這些是 PostgreSQL 的一些主要優(yōu)點:
MySQL — 一種快速、可靠、可擴展且易于使用的開源關系數據庫系統 — 旨在處理關鍵任務、高負載的生產應用程序。它是一種常見且易于啟動的數據庫,內存、磁盤和 CPU 利用率較低,有關系數據庫管理系統 (RDMS) 管理。MySQL Community Edition 是一個由活躍的在線社區(qū)支持的免費下載版本。
MySQL 功能包括所有 SQL 標準命令以及事務和 ACID 合規(guī)性(代表原子性、一致性、隔離性和持久性)。
兩個最常見的關系數據庫是什么 MySQL 和 Oracle。MySQL 不是 SQL Server 的同義詞,SQL Server 是 Microsoft 許可產品,與 MAC OS X 缺乏兼容性。
MariaDB 經常與 MySQL 混淆,它是 MySQL 的一個開源分支,速度更快,提供更多存儲引擎 (12),但功能有限。MySQL 和 MariaDB 使用的存儲引擎都是 InnoDB。InnoDB 提供標準的 ACID 兼容特性。與 MySQL 不同,MariaDB 不支持數據屏蔽或動態(tài)列表。
MySQL 通常用作 Web 數據庫來存儲各種信息類型,從單個信息數據點到為組織提供的產品或服務的完整列表。它是LAMP(Linux 操作系統、Apache HTTP 服務器、MySQL RDBMS 和 PHP 編程語言)的基礎組件,這是一種有助于創(chuàng)建API、Web 應用程序和網站的軟件堆棧模型。
MySQL Workbench 是一個單一的、集成的可視化 SQL 平臺,用于 MySQL 數據庫的創(chuàng)建、開發(fā)、設計和管理。
MySQL 為市場提供了許多好處,包括:
PostgreSQL 和 MySQL 之間有很多不同之處。特性、功能和優(yōu)勢方面的一些差異如下:
總之,PostgreSQL 和 MySQL 都有不同的用途,它們之間的選擇取決于企業(yè)目標和資源。一般來說,PostgreSQL 是一個更強大、更高級的數據庫管理系統,非常適合需要在大型環(huán)境中快速執(zhí)行復雜查詢的組織。但是,對于預算和空間更受限制的公司來說,MySQL 是一個理想的解決方案。
PostgreSQL自帶有一個簡易的全文檢索引擎,可以實現小規(guī)模數據量的全文檢索功能。本文我們將引導介紹一下這個功能,對于小數據量的搜索這個功能是足夠使用的,而無需搭建額外的ES等重量級的全文檢索服務器。
PG的全文檢索操作符是 @@ ,當一個 tsvector (文檔)和 tsquery (條件)匹配時返回 true ,并且前后順序無影響:
和普通的SQL查詢一樣,只要在 WHERE 條件中使用這個符號就代表使用全文檢索條件篩選文檔了。如:
@@ 操作符支持隱式轉換,對于 text 類型可以無需強類型轉換( ::tsvector 或 to_tsvector(config_name, text) ),所以這個操作符實際支持的參數類型是這樣的:
tsquery 查詢條件并不是簡單的正則,而是一組搜索術語,使用并且使用布爾操作符 (AND)、 | (OR)和 ! (NOT)來組合它們,還有短語搜索操作符 - (FOLLOWED BY)。更詳細的語法參見 此文檔 。
此外,PostgreSQL還提供了兩個相對簡化的版本 plainto_tsquery 和 phraseto_tsquery 。
plainto_tsquery ( plainto_tsquery([ config regconfig, ] querytext text) returns tsquery )用戶將未格式化的 text 經過分詞之后,插入 符號轉為 tsquery :
phraseto_tsquery ( phraseto_tsquery([ config regconfig, ] querytext text) returns tsquery )行為和 plainto_tsquery 行為類似,但是分詞之后不是插入 而是 - (FOLLOWED BY):
使用索引可以加快全文檢索的速度。對于全文檢索來說,可選的索引類型是 GIN (通用倒排索引)和 GIST (通用搜索樹),官方文檔更推薦使用 GIN索引 。創(chuàng)建一個 GIN 索引的范例:
也可以是一個連接列:
還可以單獨創(chuàng)建一個 tsvector 列,為這個列創(chuàng)建索引:
除了普通的 ORDER BY 條件之外,PostgreSQL為全文檢索提供了兩個可選的排序函數 ts_rank([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ]) returns float4 和 ts_rank_cd([ weights float4[], ] vector tsvector, query tsquery [, normalization integer ]) returns float4 ,以便實現基于 權重 的排序。
此外,對于PostgreSQL 9.6以上的版本還可以使用 RUM index 排序。(注意,這個是擴展,默認不包含)。
PostgreSQL默認的分詞字典中并不包含中文分詞字典,因此我們必須手工引入。目前一個比較好的項目是 zhparser ,同時這個插件也是阿里云的RDS默認包含的。安裝和啟用沒什么好說的。值得一提的是分詞配置參數。
在 CREATE EXTENSION 之后,必須配置分詞參數才能正確進行分詞和查找,否則什么都查不到。官方文檔提供的一個配置策略是:
n,v,a,i,e,l 這幾個字母分別表示一種token策略,只啟用了這幾種token mapping,其余則被屏蔽。具體支持的參數和含義可以用 \dFp+ zhparser 顯示:
WITH simple 表示詞典使用的是內置的simple詞典,即僅做小寫轉換。根據需要可以靈活定義詞典和token映射,以實現屏蔽詞和同義詞歸并等功能。
比如我們看下面這個例子:
可以看到 江淮 這個詞組在查詢的時候被忽略了,我們啟用 j (abbreviation,簡稱)再看看結果:
所以實際使用中要設置合理的token types,過少將導致搜索結果不準確,過多將導致性能下降。此外,還有一些諸如 短詞復合: zhparser.multi_short = f 這一類的控制分詞結果的選項,根據實際使用酌情開啟。
我們在使用Postgresql的時候,首先需要開啟Postgresql服務。那么在Windows系統中有哪些方法開啟Postgresql服務呢?下面我給大家分享一下。
工具/材料
任務管理器,服務面板,CMD命令行
服務面板開啟
01
首先按Win+R組合鍵打開運行窗口,在輸入框中輸入services.msc命令,如下圖所示
02
在出現的服務界面中我們找到postgresql的記錄行,如下圖所示,右鍵單擊選擇啟動
03
當服務的狀態(tài)顯示為正在運行的時候則代表postgresql服務已經打開了,如下圖所示
任務管理器開啟
01
按住鍵盤上的Ctrl+Shift+ESC組合鍵,注意是同時按下,不是一個個按,如下圖所示
02
在彈出的任務管理器窗口中切換到服務面板,找到postgresql服務,右鍵單擊選擇開始選項,如下圖所示
命令行開啟
01
找到所有程序下面的Windows系統,然后點擊命令提示符,如下圖所示
02
另外也可以直接打開運行界面輸入CMD命令打開命令提示符界面,如下圖所示
03
在命令提示符中通過net start命令來開啟postgresql服務,如下圖所示,注意服務名一定要寫正確
postgreSQL是一款先進的開源數據庫,擁有非常齊全的自由軟件的對象-關系型數據庫管理系統(ORDBMS),可面向企業(yè)復雜SQL的OLTP業(yè)務場景,支持多項企業(yè)級功能,能解決使用數據庫的各種難題。
PostgreSQL的優(yōu)勢有很多。它是一個免費的對象-關系數據庫服務器(ORDBMS),在靈活的BSD許可證下發(fā)行。
postgreSQL的特征
函數:通過函數,可以在數據庫服務器端執(zhí)行指令程序。
索引:用戶可以自定義索引方法,或使用內置的 B 樹,哈希表與 GiST 索引。
觸發(fā)器:觸發(fā)器是由SQL語句查詢所觸發(fā)的事件。如:一個INSERT語句可能觸發(fā)一個檢查數據完整性的觸發(fā)器。觸發(fā)器通常由INSERT或UPDATE語句觸發(fā)。 多版本并發(fā)控制:PostgreSQL使用多版本并發(fā)控制(MVCC,Multiversion concurrency control)系統進行并發(fā)控制,該系統向每個用戶提供了一個數據庫的"快照",用戶在事務內所作的每個修改,對于其他的用戶都不可見,直到該事務成功提交。
規(guī)則:規(guī)則(RULE)允許一個查詢能被重寫,通常用來實現對視圖(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、刪除(DELETE)。
數據類型:包括文本、任意精度的數值數組、JSON 數據、枚舉類型、XML 數據等。全文檢索:通過 Tsearch2 或 OpenFTS,8.3版本中內嵌 Tsearch2。
NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 數據庫的外部數據包裝器。
數據倉庫:能平滑遷移至同屬postgreSQL生態(tài)的GreenPlum,DeepGreen,HAWK 等,使用 FDW 進行 ETL。
1. 啟動數據庫服務器(posgres用戶):
[postgres@localhost bin]$ postgres -D /opt/postgresql/data/ /opt/postgresql/log/pg_server.log 21
[1] 4508
當然如果設置了環(huán)境變量
PGDATA=/opt/postgresql/data
export PGDATA
后,可使用pg_ctl工具進行啟動:
[postgres@localhost log]$ pg_ctl start -l /opt/postgresql/log/pg_server.log
pg_ctl: another server might be running; trying to start server anyway
pg_ctl: could not start server
Examine the log output.
[postgres@localhost log]$
因為之前已經啟動,所以打印“another server might be running”。此時,查看日志,有如下信息:
[postgres@localhost log]$ cat pg_server.log
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 4491) running in data directory "/opt/postgresql/data"?
[postgres@localhost log]$
當然,最簡的.啟動方式是:
[postgres@localhost ~]$ pg_ctl start
server starting
[postgres@localhost ~]$ LOG: database system was shut down at 2011-07-09 13:58:00 CST
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
如果要在操作系統啟動時就啟動PG,可以在/etc/rc.d/rc.local 文件中加以下語句:
/opt/postgresql/bin/pg_ctl start -l /opt/postgresql/log/pg_server.log -D /opt/postgresql/data
2.關閉服務器
最簡單方法:
[postgres@localhost ~]$ pg_ctl stop
waiting for server to shut down.... done
server stopped
與Oracle相同,在關閉時也可采用不同的模式,簡介如下:
SIGTERM
不再允許新的連接,但是允許所有活躍的會話正常完成他們的工作,只有在所有會話都結束任務后才關閉。這是智能關閉。
SIGINT
不再允許新的連接,向所有活躍服務器發(fā)送 SIGTERM(讓它們立刻退出),然后等待所有子進程退出并關閉數據庫。這是快速關閉。
SIGQUIT
令 postgres 向所有子進程發(fā)送 SIGQUIT 并且立即退出(所有子進程也會立即退出),而不會妥善地關閉數據庫系統。這是立即關閉。這樣做會導致下次啟動時的恢復(通過重放 WAL 日志)。我們推薦只在緊急的時候使用這個方法。
SIGKILL
此選項盡量不要使用,這樣會阻止服務器清理共享內存和信號燈資源,那樣的話你只能在啟動服務器之前自己手工做這件事。另外,SIGKILL 直接把 postgres 殺掉,而不會等它把信號中繼給它的子進程,因此我們還需要手工殺掉每個獨立子進程。
使用方法舉例:
[postgres@localhost ~]$ pg_ctl stop -o SIGTERM
LOG: received smart shutdown request
LOG: autovacuum launcher shutting down
waiting for server to shut down....LOG: shutting down
LOG: database system is shut down
done
server stopped
[postgres@localhost ~]$
最快速關閉方法:kill postgres 進程
[postgres@localhost ~]$ kill -INT `head -1 /opt/postgresql/data/postmaster.pid`
[postgres@localhost ~]$ LOG: received fast shutdown request
LOG: aborting any active transactions
LOG: autovacuum launcher shutting down
LOG: shutting down
LOG: database system is shut down
附:postgre啟動后的進程,如下:
[postgres@localhost ~]$ ps -ef|grep post
root 4609 4543 0 13:57 pts/2 00:00:00 su - postgres
postgres 4610 4609 0 13:57 pts/2 00:00:00 -bash
postgres 4724 1 0 14:08 pts/2 00:00:00 /opt/postgresql/bin/postgres
postgres 4726 4724 0 14:08 ? 00:00:00 postgres: writer process
postgres 4727 4724 0 14:08 ? 00:00:00 postgres: wal writer process
postgres 4728 4724 0 14:08 ? 00:00:00 postgres: autovacuum launcher process
postgres 4729 4724 0 14:08 ? 00:00:00 postgres: stats collector process
postgres 4752 4610 0 14:11 pts/2 00:00:00 ps -ef
postgres 4753 4610 0 14:11 pts/2 00:00:00 grep post
[postgres@localhost ~]$
網站標題:cpostgresql的簡單介紹
轉載源于:http://www.rwnh.cn/article40/dsdhpeo.html
成都網站建設公司_創(chuàng)新互聯,為您提供微信小程序、動態(tài)網站、App開發(fā)、外貿建站、關鍵詞優(yōu)化、用戶體驗
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯