非關係資料庫mysql(非關係資料庫包括哪些)

本文目錄一覽:

國產DBMS有哪些?除了關係資料庫管理系統外,還有哪些非關係資料庫管理系統?

關係型資料庫:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL

非關係型資料庫:NoSql、Cloudant、MongoDb、redis、HBase當前主流的商業資料庫有Oracle、微軟SQLServer、IBM DB2和SybaseAdaptive SQL Server。

而在開源方面,主要有三家主流資料庫:MySQL、PostgreSQL和Ingres。這兩類資料庫都已經證明了自己可以勝任數據存儲和管理的需要。

有哪些輕型的非關係型資料庫?

常見的非關係型資料庫有:1、mongodb;2、cassandra;3、redis;4、hbase;5、neo4j。其中mongodb是非常著名的NoSQL資料庫,它是一個面向文檔的開源資料庫。

常見的幾種非關係型資料庫:

1、MongoDB

MongoDB是最著名的NoSQL資料庫。它是一個面向文檔的開源資料庫。MongoDB是一個可伸縮和可訪問的資料庫。它在c++中。MongoDB同樣可以用作文件系統。在MongoDB中,JavaScript可以作為查詢語言使用。通過使用sharding MongoDB水平伸縮。它在流行的JavaScript框架中非常有用。

人們真的很享受分片、高級文本搜索、gridFS和map-reduce功能。驚人的性能和新特性使這個NoSQL資料庫在我們的列表中名列第一。

特點:提供高性能;自動分片;運行在多個伺服器上;支持主從複製;數據以JSON樣式文檔的形式存儲;索引文檔中的任何欄位;由於數據被放置在碎片中,所以它具有自動負載平衡配置;支持正則表達式搜索;在失敗的情況下易於管理。

優點:易於安裝MongoDB;MongoDB Inc.為客戶提供專業支持;支持臨時查詢;高速資料庫;無模式資料庫;橫向擴展資料庫;性能非常高。

缺點:不支持連接;數據量大;嵌套文檔是有限的;增加不必要的內存使用。

2、Cassandra

Cassandra是Facebook為收件箱搜索開發的。Cassandra是一個用於處理大量結構化數據的分散式數據存儲系統。通常,這些數據分布在許多普通伺服器上。您還可以添加數據存儲容量,使您的服務保持在線,您可以輕鬆地完成這項任務。由於集群中的所有節點都是相同的,因此不需要處理複雜的配置。

Cassandra是用Java編寫的。Cassandra查詢語言(CQL)是查詢Cassandra資料庫的一種類似sql的語言。因此,Cassandra在最佳開源資料庫中排名第二。Facebook、Twitter、思科(Cisco)、Rackspace、eBay、Twitter、Netflix等一些最大的公司都在使用Cassandra。

特點:線性可伸縮;;保持快速響應時間;支持原子性、一致性、隔離性和耐久性(ACID)等屬性;使用Apache Hadoop支持MapReduce;分配數據的最大靈活性;高度可伸縮;點對點架構。

優點:高度可伸縮;無單點故障;Multi-DC複製;與其他基於JVM的應用程序緊密集成;更適合多數據中心部署、冗餘、故障轉移和災難恢復。

缺點:對聚合的有限支持;不可預知的性能;不支持特別查詢。

3、Redis

Redis是一個鍵值存儲。此外,它是最著名的鍵值存儲。Redis支持一些c++、PHP、Ruby、Python、Perl、Scala等等。Redis是用C語言編寫的。此外,它是根據BSD授權的。

特點:自動故障轉移;將其資料庫完全保存在內存中;事務;Lua腳本;將數據複製到任意數量的從屬伺服器;鑰匙的壽命有限;LRU驅逐鑰匙;支持發布/訂閱。

優點:支持多種數據類型;很容易安裝;非常快(每秒執行約11萬組,每秒執行約81000次);操作都是原子的;多用途工具(在許多用例中使用)。

缺點:不支持連接;存儲過程所需的Lua知識;數據集必須很好地適應內存。

4、HBase

HBase是一個分散式的、面向列的開源資料庫,該技術來源於 Fay Chang 所撰寫的Google論文「Bigtable:一個結構化數據的分散式存儲系統」。就像Bigtable利用了Google文件系統(File System)所提供的分散式數據存儲一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。

HBase是Apache的Hadoop項目的子項目。HBase不同於一般的關係資料庫,它是一個適合於非結構化數據存儲的資料庫。另一個不同的是HBase基於列的而不是基於行的模式。

5、neo4j

Neo4j被稱為原生圖資料庫,因為它有效地實現了屬性圖模型,一直到存儲層。這意味著數據完全按照白板的方式存儲,資料庫使用指針導航和遍歷圖。Neo4j有資料庫的社區版和企業版。企業版包括Community Edition必須提供的所有功能,以及額外的企業需求,如備份、集群和故障轉移功能。

特點:它支持唯一的約束;Neo4j支持完整的ACID(原子性、一致性、隔離性和持久性)規則;Java API: Cypher API和本機Java API;使用Apache Lucence索引;簡單查詢語言Neo4j CQL;包含用於執行CQL命令的UI: Neo4j Data Browser。

優點:容易檢索其相鄰節點或關係細節,無需連接或索引;易於學習Neo4j CQL查詢語言命令;不需要複雜的連接來檢索數據;非常容易地表示半結構化數據;大型企業實時應用程序的高可用性;簡化的調優。

缺點:不支持分片

Mongodb和mysql的區別

Mongodb和mysql的區別

1.Mongodb簡介及優缺點分析

Mongodb是非關係型資料庫(nosql ),屬於文檔型資料庫。文檔是mongoDB中數據的基本單元,類似關係資料庫的行,多個鍵值對有序地放置在一起便是文檔,語法有點類似javascript面向對象的查詢語言,它是一個面向集合的,模式自由的文檔型資料庫。

存儲方式:虛擬內存+持久化。

查詢語句:是獨特的Mongodb的查詢方式。

適合場景:事件的記錄,內容管理或者博客平台等等。

架構特點:可以通過副本集,以及分片來實現高可用。

數據處理:數據是存儲在硬碟上的,只不過需要經常讀取的數據會被載入到內存中,將數據存儲在物理內存中,從而達到高速讀寫。

成熟度與廣泛度:新興資料庫,成熟度較低,Nosql資料庫中最為接近關係型資料庫,比較完善的DB之一,適用人群不斷在增長。

優點:

快速!在適量級的內存的Mongodb的性能是非常迅速的,它將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快。高擴展性,存儲的數據格式是json格式!

缺點:

① mongodb不支持事務操作。

② mongodb佔用空間過大。

③ 開發文檔不是很完全,完善。

2.MySQL優缺點分析

優點:

在不同的引擎上有不同 的存儲方式。

查詢語句是使用傳統的sql語句,擁有較為成熟的體系,成熟度很高。

開源資料庫的份額在不斷增加,mysql的份額頁在持續增長。

缺點:

在海量數據處理的時候效率會顯著變慢。

3.Mongodb和MySQL資料庫的對比

傳統的關係資料庫一般由資料庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由資料庫(database)、集合(collection)、文檔對象(document)三個層次組成。

MongoDB對於關係型資料庫里的表,但是集合中沒有列、行和關係概念,這體現了模式自由的特點。

4.MongoDB常用語句

# 連接Mongo資料庫,並設置數據存儲地址

mongod.exe –dbpath “d:softwareMongoDBServer3.0data”

#———————–#1# 資料庫

# 查看所有的資料庫

show dbs

# 刪除當前使用的資料庫

db.dropDatabase()

# 使用這個資料庫(只有插入數據後完成創建資料庫)

use dbt

# 查看當前使用的資料庫

db

db.getName()

# 查看當前資料庫狀態

db.stats()

# 修復當前資料庫

db.repairDatabase()

# 從一個資料庫複製到另一個資料庫

db.copyDatabase(“mydb”, “temp”, “127.0.0.1”);

#———————–#2# 集合

# 查看當前資料庫下所有的集合

show collections

show tables

# 創建名稱為coll集合

db.createCollection(‘coll’)

db.createCollection(“coll2”, {capped:true, autoIndexId:true, size:6142800, max:10000}) # 可選參數

# 查看當前集合狀態

db.coll.stats()

# 刪除名稱為coll集合

db.coll.drop()

#———————–#3# 集合數據

# 插入空數據並且直接創建名稱為coll集合

db.coll.insert({})

# 插入一個或多個數據

db.coll.insert({name:’tom’, age:22})

db.coll.insert([{name:’adam’, age:10},{name:’john’, age:23}])

# 添加數據(save方法可以修改相同id的數據)

db.coll.save({name:’allen’})

# 刪除一個或所有的數據

db.coll.remove({name:’tom’})

db.coll.remove({})

# 刪除符合條件的數據中的第一條

db.coll.remove({name:’tom’}, 1)

# 更改數據

db.coll.update({name:’tom’, age:22}, {$set:{name:’tom’, age:222}})

# 查看數據

db.coll.find()

# 查看一條數據

db.coll.findOne()

db.coll.find({}, {name:1, ‘_id’:0}) # 1表示顯示,0表示不顯示(find默認顯示_id)

# 格式化顯示數據,使數據更加清晰明了

db.coll.find().pretty()

# 使用and,or查看數據

db.coll.find({name:’tom’, age:22}) # 等同and使用

db.coll.find({$or:[{name:’tom’}, {age:21}]}) # or使用

# 操作符大於,小於,等於,不等於,大於不等於,小於不等於

db.coll.find({age: {$gt: 22}}) # 大於

db.coll.find({age: {$lt: 22}}) # 大於

db.coll.find({age: 22}) # 等於

db.coll.find({age: {$ne: 22}}) # 不等於

db.coll.find({age: {$gte: 22}}) # 大於等於

db.coll.find({age: {$lte: 22}}) # 小於等於

# 顯示從skip之後limit個

db.coll.find().limit(2).skip(1)

#———————–# # 用戶

# 3.x之後版本添加用戶

use admin

db.createUser({user:’nu’, pwd:’nu’, roles:[{role:’readWrite’,db:’admin’}]})

# 用戶認證

db.auth(“nu”, “nu”);

# 顯示當前所有用戶

show users;

db.system.users.find()

3.x版本刪除用戶

db.removeUser(‘nu’) # 不推薦使用,已經廢棄

db.dropUser(“nu”);

# 當前db版本

db.version();

# 當前db的鏈接機器地址和埠

db.getMongo();

# 備份到備份目錄

mongodump

# 從備份目錄恢復備份語句。

mongorestore

咱們下期見。

什麼是資料庫

資料庫專業的來說,其實就是一種電子的倉庫,是專門儲存數據和管理管理數據的一種處所,用戶可以對資料庫中的數據進行新增和更新或者刪除等操作。

舉個例子,現在每一個人都有很多朋友和同學,為了方便聯繫,我們在通訊錄,建立有關姓名和電話,這個通訊錄就是資料庫,有時候我們會修改某個電話號碼。

資料庫類型

1、關係資料庫

關係型資料庫,存儲的格式可以直觀地反映實體間的關係。關係型資料庫和常見的表格比較相似,關係型資料庫中表與表之間是有很多複雜的關聯關係的。

常見的關係型資料庫有Mysql,SqlServer等。在輕量或者小型的應用中,使用不同的關係型資料庫對系統的性能影響不大,但是在構建大型應用時,則需要根據應用的業務需求和性能需求,選擇合適的關係型資料庫。

2、非關係型資料庫

NoSQL,泛指非關係型的資料庫。隨著互聯網web2.0網站的興起,傳統的關係資料庫在處理web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站已經顯得力不從心,出現了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。

關係型資料庫和非關係型資料庫有哪些

當前主流的關係型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。非關係資料庫有Mong DB

原創文章,作者:EI565,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127802.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EI565的頭像EI565
上一篇 2024-10-03 23:16
下一篇 2024-10-03 23:16

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • 依賴關係代碼的用法介紹

    依賴關係代碼在軟體開發中扮演著至關重要的角色。它們指定了項目中各個模塊之間的依賴關係。本文將從多個方面對依賴關係代碼進行詳細的闡述。 一、依賴關係代碼的作用 依賴關係代碼可以幫助開…

    編程 2025-04-28

發表回復

登錄後才能評論