"51CTO 독점 기능" 2010 기억 되어야 한다, SQL 올해에 죽을 것 이다 때문에. 올해의 관계형 데이터베이스는 이동 중에 그리고 올해 개발자는 그들이 필요 하지 않습니다 긴, 힘 드는 건설 열 또는 데이터를 저장 하는 테이블을 찾을.
2010 문서 데이터베이스에 대 한 시작 해 될 것입니다. 기세 수년간 진행 되고있다, 하지만 지금 더 광범위 한 문서 데이터베이스 표시 하는 때 나이 이다. 구글, 오픈 소스 도구, MongoDB 및 Couchdb의 탄생과 함께 수 클라우드 기반 아마존에서
그래서 MongoDB 무엇입니까? PHP 개발자가 알아야 할 5 가지.
1. MongoDB는 별도 서버
2. MongoDB는 문서 기반으로, 하지 테이블을 기반으로
3. MongoDB에에서 덜 스키마
4. 당신은 다른 언어를 배울 필요가 없습니다.
5. MongoDB는 좋은 PHP 지원
1. MongoDB는 별도 서버
MySQL과 PostgreSQL 처럼 MongoDB 액세스 링크 듣는 것입니다. 조회, 생성, 업데이트 및 삭제를 포함 하는 도구를 제공 합니다. 이론에서는, 당신은 MySQL 및 PostgreSQL 같은 방식으로 작동 합니다: 링크, 처리 및 다음 연결을 닫습니다.
2. 행 및 테이블 환영 문서 및 수집가에 작별
대신 테이블 행은 데이터 저장, MongoDB 문서에 데이터를 저장 합니다. 만약 우리가 "기사"는 제목으로,은 여러 작가, 테마와 레이블이 있습니다. 이 다음과 같습니다.
<? php 배열 (' 제목 ' = > ' Hello World ', '저자' = > 배열 ('존', '샐리', '짐'), '몸' = > ' 안녕하세요 W 됩니다 ',' 태그 = > ('Tag1', 'tag2', 'tag3') 배열); ? >
가장 중요 한 위의 예제는 그 기록-이 문서-예, 그것은 않습니다. 전송 시각: 동일한 영역에 저장 된 값의 복합 형태를 지 원하는 문서 처럼는. 더 이상 구조화 될 필요가 테이블 데이터를 구분 하는 필요 없음. 따라서, 테이블은 더 이상 존재합니다.
3. MongoDB 적은 스키마 포함
MongoDB는 스키마 언어는 없습니다. 새로운 종류의 문서를 만들려는 경우 데이터베이스에 게 아무것도 말할 필요가 없습니다. 경우에 데이터베이스에 새 데이터를 넣어.
2, 나는 문서를 시뮬레이션합니다. 이제 모든 분야에 대 한 문서 형식을 정의 하 고 싶습니다, 내가 할 필요가 데이터베이스에이 데이터를 작성입니다. 만약 내가 글 연기 결정? 난 그냥이 부분의 데이터를 밖으로 끌어 다음 날짜 필드를 추가 하 고 마지막으로 라인을 저장 해야 합니다.
데이터 형식에 대 한? 간단한 대답은 MongoDB 자바 스크립트 또는 PHP 같은 강력한 시스템을 사용 하 여. 따라서, 데이터베이스는 종류의 역할을 약화 하는 것을 매우 잘한다.
일부 취약점 (많은 양의 데이터 필요 일부 명시적 정의), 하지만 대부분의 경우에 MongoDB 코드 작성할 경우 PHP에서 프로그래밍 했다.
4. 당신은 다른 언어를 배울 필요가 없습니다.
작성 하 신 다른 데이터베이스 추상화 레이어를 기억 합니다. 사용한 모든 ORM 레이어를 기억 하십시오. 지금, 그들을 포기할 수 있다 그럼 MongoDB에 그들을 사용할 수 없습니다.
MongoDB (PHP 드라이버 포함 된) 언어에 게 필요 하지 않습니다. 대부분의 경우, 그냥 단순히 당신이 필요 하 고 그것을 가리키는 문서에 반환 후 지정에 대 한 포인터를 제공 해야 합니다.
(맵 리듀스와 같은) 일부 고차 함수를 실행 하면 자바 애플 리 케이 션 MongoDB에 그들을 추가 하 고 내부 자바 스크립트 엔진에서 실행 수 있습니다.
5. PHP와 MongoDB 자연 커플은?
PHP는 이미 MongoDB에 대 한 좋은 지원을 했다. 몽고 드라이버는 pecl 추가 기능으로, 몽고 pecl 실행 되는 경우에 설치 즉 PHP를 추가할 수 있습니다.
참조 여기, 몽고 API를 쓰기 시작할 수 있습니다. 더 넓게, 그것은 PDO 줄지어 있다. 그것은 단순히 멸종, 하지만 우리가 전에 개발 데이터베이스에서 확실히 다르다.
API 설명서는 짧은 시간에 자신을 올릴 수 있도록 가이드와 많은 예제가 포함 됩니다. 다음 당신을 위해 유용한 정보 될 것입니다.
MongoDB는 매우 빠르게 개발 하 고 있다.
개발 시간이 매우 짧습니다, 그리고 관리, 몇 가지 (해당 되는 경우) 데이터 지도를 너무 많은 모드 되지 않습니다.
새로운 쿼리 언어 배울 수 있기 때문에, 코드 조정 매우 작습니다. 모든 후, 당신은 다른 ORM을 필요 하지 않습니다 이며 패킷이 매우 가벼운.
코드는 미래에 대 한 약속 이며 개체를 훨씬 더 복잡 한 영역에 더 많은 필드를 추가 하는 것이 쉬울 수 있다. 그래서 코드 요구 사항 변화에 쉽게 적응할 수 있습니다.
확장된 읽기
MongoDB 로고
몽고는 높은-성능, 오픈 소스, 전통적인 관계형 데이터베이스를 대체 또는 키/값 저장소 많은 시나리오에 사용할 수 있는 모덜리스 문서 데이터베이스입니다. 몽고 사용 하 여 C + + 개발은 다음과 같은 기능을 제공:
컬렉션 지향 저장: 데이터 개체 및 JSON 형태의 저장에 적합.
동적 쿼리: 몽고 풍부한 쿼리 식을 지원 합니다. 쿼리 지침 쉽게 쿼리 개체를 문서에 포함 하는 배열을 JSON 형식 태그를 사용 합니다.
전체 인덱스 지원: 문서 인라인 개체와 배열을 포함 한다. 몽고 쿼리 최적화 프로그램이 쿼리 식을 분석 하 고 효율적인 쿼리 계획을 생성 합니다.
쿼리 모니터링: 몽고 데이터베이스 작업의 성능을 분석 하기 위한 모니터링 도구 포함 되어 있습니다.
복제 및 자동 장애 조치:는 몽고 데이터베이스 서버, 서버 복제와 지원 모드에서 마스터 데이터 복제를 지원. 복제의 주요 목표 중복 및 자동 장애 조치를 제공 하는 것입니다.
효율적인 전통적인 스토리지: 이진 데이터 및 사진이 나 그림 등 대형 개체를 지원 합니다.
(초기 알파 단계)에서 클라우드 수준 확장성을 지원 하기 위해 자동 조각화: 자동 조각화 지원 추가 컴퓨터를 동적으로 추가할 수 있는 데이터베이스 클러스터링의 수준.
MongoDB의 주요 목표 둘 다의 장점이 결합 된 키/값 저장소 (높은 성능과 높은 확장성)와 전통적인 RDBMS 시스템 (다양 한 기능), 간의 브리지를 설정 하는 것입니다. 공식 홈페이지 설명에 따르면 몽고는 다음과 같은 시나리오에 적합:
사이트 데이터: 몽고는 실시간 삽입, 업데이트 및 쿼리, 복제 및 웹 사이트에 실시간 데이터 저장에 필요한 높은 확장성.
캐싱: 그것의 고성능 때문에 몽고 이기도 정보 인프라에 대 한 캐싱 계층으로 적합 합니다. 시스템을 다시 시작한 후 몽고에 의해 만들어진 영구 캐시 계층 기본 데이터 소스를 오버 로드를 피할 수 있습니다.
큰 크기, 낮은 값 데이터:는 프로그래머 중 전통적인 파일 저장에 대 한 전통적인 관계형 데이터베이스를 사용 하 여 일부 데이터를 저장 하는 비용이 있을 수 있습니다.
확장성 시나리오: 몽고는 수십 또는 수백 대의 서버 데이터베이스 구성에 대 한 이상적 이다. 몽고 로드맵 MapReduce 엔진에 대 한 지원을 내장에 이미 포함 되어 있습니다.
개체를 JSON 데이터 저장: 몽고의 Bson 데이터 형식을 저장 하 고 문서화 된 형태로 쿼리에 이상적입니다.
당연히, MongoDB 사용 하 여 또한 적합 하지 않는 같은 몇 가지 제한 사항이 가질 수 있습니다.
높은 트랜잭션 시스템: 은행 또는 회계 시스템 등. 전통적인 관계형 데이터베이스는 이제 더 많은 원자 복잡 한 트랜잭션 필요로 하는 응용 프로그램에 적합 합니다.
전통적인 비즈니스 인텔리전스 응용 프로그램: 특정 문제에 대 한 The BI 데이터베이스는 고도로 최적화 된 쿼리. 이러한 응용 프로그램에 대 한 데이터 웨어하우스 더 적절 한 선택이 될 수 있습니다.
SQL을 요구 하는 문제
MongoDB OS X, 리눅스와 윈도 같은 운영 체제를 지원 하 고 파이썬, php, 루비, 자바, C에 대 한 드라이버를 제공 합니다 + + 언어, 뿐만 아니라 지역 사회에서 Erlang 및. NET 플랫폼용 드라이버.