중화사전망 - 서예자전 - Pgsql 은 MySQL 보다 어디에 있습니까?

Pgsql 은 MySQL 보다 어디에 있습니까?

Pgsql 과 Mysql 비교

나는 직장에서 이 두 개의 데이터베이스를 사용했지만, 모두 너무 심오하지 않고, 사용도 제한되어 있다. 그러나 나에게 남겨진 인상은 Pgsql 이 더 좋다는 것이다. 왜냐하면 두 데이터베이스 모두 데이터 손실 문제가 발생했기 때문이다. 전자는 온라인 방법과 나 자신의 판단을 통해 회복된다. 후자는 각종 자료를 검색하고 주변 전문가에게 물어볼 수 없다.

방금 인터넷에서 양자의 차이를 검색했는데, 전반적으로 전자가 최고의 오픈 소스 관계형 데이터베이스이고, 후자는 인터넷 업계에서 가장 널리 사용되는 데이터베이스이며, 많은 앱이 많은 구덩이를 발견할 수 있고, 인터넷에도 많은 관련 자료가 있는 것 같다. 만약 내가 선택하게 한다면, 나는 전자를 선택할 것이다, 특별한 요구는 없다.

양자의 차이에 대하여, 알고 있는 관련 문제를 볼 수 있고, 대답은 매우 훌륭하다.

그 중 하나는 다음과 같습니다.

첫째, PostgreSQL 은 매우 안정적이며, Innodb 와 같은 엔진은 충돌, 정전 등 재난 상황에서 공격방지 능력이 크게 향상되었다. 그러나 많은 MySQL 사용자는 서버급 데이터베이스가 손실되는 장면을 경험했습니다. MYSQL 시스템 라이브러리는 MyISAM 으로 PG 데이터베이스보다 훨씬 우수합니다.

둘째, 모든 시스템에는 성능 한계가 있습니다. 높은 동시 읽기 및 쓰기, 로드가 한계에 가까운 경우에도 PG 의 성능 지표는 쌍곡선 또는 대수 곡선을 유지할 수 있으며, 최고점에 도달하면 감소하지 않고 MySQL 은 최고점에 도달한 후 현저하게 떨어집니다 (5.5 버전 이후, 기업판에는 플러그인을 많이 올릴 수 있지만 유료로 지불해야 함).

셋째, PG 는 기하학적 유형이 풍부하기 때문에 수년 동안 GIS 분야에서 우세해 왔습니다. PG 에는 사전, 배열, 비트맵 등과 같은 많은 데이터 유형이 있습니다. , MySQL 에 비해 훨씬 나쁩니다. Instagram 은 PG 의 공간 데이터베이스 확장 POSTGIS 가 MYSQL 의 my spatial 보다 훨씬 강하기 때문에 PGSQL 을 사용합니다.

넷째, PG 의 "잠금 해제" 기능은 PGSQL 의 MVCC 구현과 관련된 진공처럼 데이터 공간을 정렬하는 작업도 매우 두드러집니다.

다섯째, PG 는 함수 및 조건부 인덱스를 사용할 수 있으므로 PG 데이터베이스 튜닝이 매우 유연합니다. MySQL 에는 이 기능이 없으며 조건부 인덱스는 웹 응용 프로그램에서 매우 중요합니다.

여섯째, PG 는 강력한 SQL 프로그래밍 기능 (9.x 튜링 완전, 재귀 지원! ), analysis function (ORACLE 의 이름, PG 의 window function) 과 같은 매우 풍부한 통계 함수 및 통계 구문 지원이 있으며, 저장 프로시저를 여러 언어로 작성할 수 있으며 R 도 잘 지원합니다. 이 시점에서 MYSQL 은 훨씬 뒤떨어져 있으며 많은 분석 기능이 지원되지 않습니다. 텐센트 내부의 데이터 저장소는 주로 MYSQL 이지만, 데이터 분석은 주로 HADOOP+PGSQL 입니다.

PG 에서 선택할 수있는 많은 클러스터 아키텍처가 있습니다. Plproxy 는 명령문 레벨 미러 또는 슬라이스를 지원할 수 있고, slony 는 필드 레벨 동기화를 설정할 수 있으며, standby 는 WAL 파일 레벨 또는 스트리밍 읽기 및 쓰기 분리 클러스터를 구축할 수 있습니다. 동기화 빈도 및 클러스터 정책은 쉽게 조정할 수 있으며 조작은 매우 간단합니다.

8. 일반 관계형 데이터베이스의 문자열 길이가 제한되어 약 8k 이며, 무제한 텍스트 유형 기능이 제한되어 외부 대용량 데이터로만 액세스할 수 있습니다. PG 의 텍스트 유형은 직접 액세스할 수 있으며, SQL 구문에는 인덱스, 전체 텍스트 검색 또는 XML XPath 를 사용할 수 있는 정규 표현식이 내장되어 있습니다. PG 를 사용하여 문서 데이터베이스를 저장할 수 있습니다.

9. 웹 응용 프로그램의 경우 복제의 특성이 매우 중요합니다. Mysql 은 지금도 비동기식 복제이며, pgsql 은 동기식, 비동기식, 반동기식 복제를 수행할 수 있습니다. 또한 MySQL 동기화는 binlog 복제를 기반으로 하며, Oracle 금문과 유사한 스트리밍 복제를 기반으로 합니다. 동기화를 수행하기가 어렵고 원격 복제에 더 적합합니다. Pgsql 의 복제는 wal 을 기반으로 하며 동기식 복제를 가능하게 합니다. 또한 pgsql 은 스트림 복제도 제공합니다.