데이터 베이스 MySQL 튜토리얼 关系型数据库与NOSQL数据库的区别

关系型数据库与NOSQL数据库的区别

Jun 07, 2016 pm 03:22 PM
nosql 관계형 차이점 성능 데이터 베이스

关系型数据库的性能非常高,但是它毕竟是一个通用型的数据库,并不能完全适应所有的用途,具体来说它并不擅长以下处理: 大量数据的写入处理。 为有数据更新的表做索引或表结构(schema)变更 字段不固定时应用 对简单查询需要快速返回结果的处理 (1)大量数据

关系型数据库的性能非常高,但是它毕竟是一个通用型的数据库,并不能完全适应所有的用途,具体来说它并不擅长以下处理:

大量数据的写入处理。

为有数据更新的表做索引或表结构(schema)变更

字段不固定时应用

对简单查询需要快速返回结果的处理

(1)大量数据的写入处理:

在数据读入方面,由复制产生的主从模式(数据的写入由主数据库负责,数据的读入由从数据库负责),可以比较简单地通过增加从数据库来实现规模化。但是,在数据的写入方面却完全没有简单的方法来解决规模化问题。例如,要想将数据的写入规模化,可以考虑把主数据库从一套增加到两台,作为互相关联复制的二元主数据库来使用。确实这样似乎可以把每台主数据库的负荷减少一半,但是更新处理会产生冲突(同样的数据在两台服务器同时更新成其他值),可能会造成数据的不一致。为了避免这样的问题,就需要把每个表的请求分别分配给合适的主数据库来处理,这就不那么简单了。

另外也可以考虑把数据库分割开来,分别放在不同的数据库服务器上,比如将这个表放在这个数据库服务器上,那个表放在那个数据库服务器上,数据库分割可以减少每台数据库服务器上的数据量,以便减少硬盘I/O处理,实现内存上的高速处理,效果非常显著。但是,由于分别存储在不同服务器上的表之间无法进行JOIN处理,数据库分割的时候就需要预先考虑这些问题。数据库分割后,如果一定要进行JOIN处理,就必须要在程序中进行关联,这是非常困难的。

(2).为有数据更新的表做索引或表结构(schema)变更

在使用关系型数据库时,为了加快查询速度需要创建索引,为了增加必要的字段就一定需要改变表结构。为了进行这些处理,需要对表进行共享锁定,这期间数据变更(更新、插入、删除等)是无法进行的。如果需要进行一些耗时操作(例如为数据量比较大的表创建索引或者是变更其表结构),就需要特别注意:长时间内数据可能无法进行更新。

共享锁:其他连接可以对数据进行读取但是不能修改数据,是读锁。

排他锁:其他连接法务对数据进行读取和修改操作,是写锁。

(3).字段不固定时的应用

如果字段不固定,利用关系型数据库也是比较困难的。加字段在实际运用中每次都进行反复的表结构变更时非常痛苦的。你也可以预先设定大量的预备字段,但这样的话,时间一长很容易弄不清楚字段和数据的对应状态(即哪个字段保存哪些数据),所以并不推荐使用。

(4).对简单查询需要快速返回结果的处理

关系型数据库并不擅长对简单的查询快速返回结构。因为关系型数据库是使用专门的SQL语言进行数据读取的,它需要对SQL语言进行解析,同时还有对表的锁定和解锁这样的额外开销。这里并不是说关系型数据库的速度太慢,而只是想告诉大家若希望对简单查询进行高速处理,则没有必要非用关系型数据库不可。

关系型数据库应用广泛,能进行事物处理和JOIN等复杂处理。相对地,NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。

NoSQL数据库原本就不支持JOIN处理,各个数据都是独立设计的,很容易把数据分散到多个服务器上。由于数据被分散到了多个服务器上,减少了每个服务器上的数据量,即使要进行大量数据的写入操作,处理起来也更加容易。同理,数据的读入操作当然也同样容易。

提升处理大数据的能力可以通过两种方式提升性能(纵向)和增大规模(横向),提升性能指的是通过提升现行服务器自身的性能来提高处理能力。这需要的费用较高。

增大规模指的是使用多台廉价的服务器来提高处理能力。它需要对程序进行变更,但由于使用廉价的服务器,可以控制成本。另外,以后只要增加服务器的数量就可以了。

键值存储:

这是最常见的SQL数据库,它的数据是以键值的形式存储的。虽然它的处理速度非常快,但是基本上只能通过键的完全一致查询获取数据。根据数据的保存方式可以分为临时性、永久性和两者兼具3种。

临时性:memcahced把所有数据都保存在内存中,这样保存和读取的速度非常快。

永久性:把数据保存在硬盘上,与memcached在内存中处理数据比起来,由于必然要发生对硬盘的IO操作,所以性能上还是有差距的。

两者兼具:Redis属于这种类型。首先把数据保存到内存中,在满足特定条件(默认是15分钟一次以上,5分钟内10个以上,1分钟内10000个以上的键发生变更)的时候将数据写入到硬盘中。这样既确保了内存中数据的处理速度,又可以通过写入硬盘来保证数据的永久性。

面向文档的数据库不定义表结构,跟键值存储不同的是,面向文档的数据库可以通过复杂的查询条件来获取数据。虽然不具备事务处理和JOIN这些关系型数据库所具有的处理能力,但除此以外的其他处理基本上都能实现。

面向列的数据库:

普通的关系型数据库都是以行为单位来存储数据的,擅长进行以行为单位的读入处理,比如特定条件数据的获取。因此,关系型数据库也被称为面向行的数据库。

面向列的数据库以列为单位,对大量行少数列进行读取,对所有行的特定列进行同时更新。

面向列的数据库具有高扩展性,即使数据增加也不会降低相应的处理速度(特别是写入速度),所以它主要应用于需要处理大量数据的情况。另外,利用面向列的数据库的优势,把它作为批处理程序的存储器来对大量数据进行更新也是非常有用的。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

한국 비트 코인과 국내 비트 코인의 차이가 있습니까? 한국 비트 코인과 국내 비트 코인의 차이가 있습니까? Mar 05, 2025 pm 06:51 PM

Bitcoin Investment Boom은 세계 최초의 분산 디지털 자산으로 인해 계속 가열되어 분산 및 글로벌 유동성에 많은 관심을 끌었습니다. 중국은 한때 비트 코인의 가장 큰 시장 이었지만 정책 영향으로 인해 거래 제한이 발생했습니다. 오늘날 한국은 세계의 주요 비트 코인 시장 중 하나가되어 투자자들이 IT와 국내 비트 코인의 차이점에 의문을 제기했습니다. 이 기사는 양국의 비트 코인 시장의 차이점에 대한 심층 분석을 수행 할 것입니다. 한국과 중국 비트 코인 시장의 차이점은 한국과 중국의 비트 코인 시장의 주요 차이점은 가격, 시장 공급 및 환율, 규제 감독, 시장 유동성 및 거래 플랫폼에 반영됩니다. 예를 들어, 2024 년 10 월 말에 한국의 비트 코인 가격은 한 번이었습니다.

Nexo는 어떤 교환입니까? Nexo는 어떤 교환입니까? Mar 05, 2025 pm 07:39 PM

NEXO : Cryptocurrency Exchange 일뿐 만 아니라 Digital Financial Manager는 기존의 Cryptocurrency 교환이 아니라 Cryptocurrency 대출에 더 중점을 둔 재무 플랫폼입니다. 이를 통해 사용자는 Cryptocurrency에서 담보로 대출을 받고이자를 얻기위한 서비스를 제공 할 수 있습니다. Nexo는 암호 화폐 구매, 판매 및 상환 기능도 제공하지만 핵심 비즈니스는 암호화 대출입니다. 이 기사는 Nexo의 운영 모델과 보안을 탐구하여 투자자에게보다 포괄적 인 이해를 제공합니다. Nexo의 운영 모델은 2018 년에 설립되었으며 스위스 Zug에 본사를두고 있으며 디지털 금융 분야의 선구자입니다. 다른 중앙 대응 교환과 다르며 포괄적 인 금융 서비스 제공에 더 중점을 둡니다. 사용자는 자산을 판매하지 않고 암호 화폐를 구매, 판매, 거래 할 수 있으며

에테르와 비트 코인의 차이 에테르와 비트 코인의 차이점은 무엇입니까 에테르와 비트 코인의 차이 에테르와 비트 코인의 차이점은 무엇입니까 Mar 19, 2025 pm 04:54 PM

이더 리움과 비트 코인의 차이는 중요합니다. 기술적으로 Bitcoin은 POW를 사용하고 Ether는 POW에서 POS로 전환했습니다. 비트 코인의 경우 거래 속도가 느리고 이더 리움은 빠릅니다. 응용 프로그램 시나리오에서 Bitcoin은 지불 스토리지에 중점을두고 Ether는 스마트 계약 및 DAPP를 지원합니다. 발행 측면에서 비트 코인의 총 금액은 2,100 만 명이며 에테르 코인의 고정 된 총량은 없습니다. 각 보안 문제가 가능합니다. 시장 가치 측면에서 비트 코인은 먼저 순위를 매기고 두 가지 가격 변동이 크지 만 특성이 다르기 때문에 이더 리움의 가격 추세는 독특합니다.

비트 코인 투기는 주식 추측입니까? 왜? 둘의 차이점은 무엇입니까? 비트 코인 투기는 주식 추측입니까? 왜? 둘의 차이점은 무엇입니까? Mar 05, 2025 pm 02:24 PM

비트 코인 : 디지털 금 또는 주식 거래 파생 상품? 신흥 투자 방법으로서 Bitcoin의 특성에 대한 심층적 인 분석은 가격이 크게 변동되었으며 주식 시장 거래 규칙과 유사합니다. 이 기사는 정의, 자연, 발행 메커니즘 등의 측면에서 심층적 인 논의를하고 Bitcoin Investment의 신비를 공개합니다. 비트 코인 및 주식 : 비트 코인과 주식의 필수 차이는 비트 코인에 대한 투자는 주식에 대한 투자와 다릅니다. 비트 코인은 디지털 자산 또는 가상 자산 범주에 속하는 분산 디지털 통화입니다. 이 개념은 2009 년 나카모토 사토시가 제안했습니다. 기존 통화와 달리

콩 빵과 딥스 크의 차이점은 무엇입니까? 콩 빵과 딥스 크의 차이점은 무엇입니까? Mar 12, 2025 pm 01:24 PM

Bean Bun과 Deepseek의 핵심 차이는 검색 정확도와 복잡성입니다. 1. Doubao는 키워드 일치, 단순하고 직접적인 비용이 저렴하지만 정확도는 낮으며 구조화 된 데이터에만 적합합니다. DeepSeek은 딥 러닝을 기반으로하며 의미가 높지만 높은 비용을 가지고 있으며 구조화되지 않은 데이터에 적합합니다. 최종 선택은 애플리케이션 시나리오 및 자원 제한에 따라 달라집니다. 정확도 요구 사항이 높지 않은 경우 콩 주머니를 선택하고 높은 정밀도를 선택하면 DeepSeek을 선택하십시오.

암호화 투자 정신은 매우 중요합니다! 불필요한 걱정을 피하고 올바른 결정을 내리는 방법은 무엇입니까? 암호화 투자 정신은 매우 중요합니다! 불필요한 걱정을 피하고 올바른 결정을 내리는 방법은 무엇입니까? Mar 05, 2025 pm 07:24 PM

암호화 투자의 두려움, 불확실성 및 의심 : 정보에 입각 한 결정을 내리는 방법? 많은 암호화 투자자들은“이것은 마지막주기입니다”에 대한 두려움과 황소 시장의 기간에 대한 우려와 다른 사람들의 압력과 함께 투자 결정이 좋지 않습니다. 이 기사는 이러한 도전을 극복하고 더 똑똑한 투자 선택을하는 방법을 탐구합니다. 잠재적 위험 : 산만 : 맹목적으로 핫스팟을 쫓아 핵심 자산의 가치를 무시합니다. 비관론과 망설임 : 불확실성은 자신감이 부족하고 오랫동안 유지할 수 없으며 시장에서 나가도 심지어 나옵니다. 신념 부족 : 프로젝트에 대한 심도있는 연구 부족이며 시장 변동성에 대처할 수 없습니다. 이익 만들기 전략 부족 : 풀백에 대한 두려움, 잠재적 수익 누락으로 인해 일찍 직책을 정리합니다. 대처 전략 : 1. 핵심 영역에 중점을 둡니다.

멀티 스레딩과 비동기 C#의 차이 멀티 스레딩과 비동기 C#의 차이 Apr 03, 2025 pm 02:57 PM

멀티 스레딩과 비동기식의 차이점은 멀티 스레딩이 동시에 여러 스레드를 실행하는 반면, 현재 스레드를 차단하지 않고 비동기식으로 작업을 수행한다는 것입니다. 멀티 스레딩은 컴퓨팅 집약적 인 작업에 사용되며 비동기식은 사용자 상호 작용에 사용됩니다. 멀티 스레딩의 장점은 컴퓨팅 성능을 향상시키는 것이지만 비동기의 장점은 UI 스레드를 차단하지 않는 것입니다. 멀티 스레딩 또는 비동기식을 선택하는 것은 작업의 특성에 따라 다릅니다. 계산 집약적 작업은 멀티 스레딩을 사용하고 외부 리소스와 상호 작용하고 UI 응답 성을 비동기식으로 유지 해야하는 작업을 사용합니다.

돈을 버는 확률로 통화 계약을 운영하는 방법은 무엇입니까? 몇 가지 팁이 있습니다 돈을 버는 확률로 통화 계약을 운영하는 방법은 무엇입니까? 몇 가지 팁이 있습니다 Mar 05, 2025 pm 01:48 PM

통화 계약 : 위험이 높고 수익률이 높은 양날의 검. 통화 서클의 많은 재향 군인들은 계약 거래의 큰 잠재력에 매료되어 관대 한 수익을 가져올 수있을뿐만 아니라 큰 손실을 초래할 수 있습니다. 계약 거래는 본질적으로 디지털 통화의 파생물이며 높은 위험과 높은 수익률은 많은 관심을 끌었습니다. 그렇다면 통화 서클 계약 거래에서 이익 확률을 높이는 방법은 무엇입니까? 여기에는 몇 가지 핵심 기술이 필요합니다. 이 기사는 위험을 줄이고 수익성을 향상시키는 방법을 심층적으로 탐구합니다. 통화 서클의 계약 이익 전략 : 휘발성 암호 화폐 시장에서 계약 거래에서 안정적인 이익을 얻으려면 포괄적 인 전략을 공식화하고 엄격하게 구현해야합니다. 위험 관리 우선 : 중지 지점 설정은 핵심입니다. 잠재적 손실을 통제하기 위해 미리 정지 손실 가격을 설정하고 단일 거래를 피하십시오.

See all articles