关系型数据库

[翻译]MongoDb 架构(MongoDb Architecture)

微笑、不失礼 提交于 2019-12-04 21:05:54
转自: http://blog.dufei.cc/index.php/archives/25/ NOSQL最近成为了一个炙手可热的话题(作者发表在2012年,话说对于现在来说,NOSQL已经如火如荼了)。大规模架构的web服务开发中对于高扩展性和半结构化数据的要求推动着数据库往NOSQL方向转变。最近几年已经有了不少NOSQL数据库解决方案。我在过去的blog中(不是我的blog, 作者blog挺卡的 ) 已经介绍过基于分布式系统理论的NOSQL ,同时也介绍了一些挺好的产品,比如CouchDB和CassanDra/HBase。 上周五,我非常幸运的在一个技术会议上见到了10gen的Jared Rosoff。我们俩对于MongoDB的技术架构做了一些探讨,我觉得我们聊得东西挺有价值的,所以在这里贴出来分享给大家。 首先MongoDb的易用性和底层架构的易懂性让我非常吃惊。下面是一些简单的管理命令--开启和关闭MongoDb server。 #安装MongoDB mkdir /data/lib #开启 server .../bin/mongod #这个时候数据就存储在了/data/db那 #开启命令行shell ..../bin/mongo >show dbs >show collections #删除collection(删除表) >db.person.drop()

Redis、Memcache和MongoDB的区别

江枫思渺然 提交于 2019-12-04 19:47:06
Redis、Memcache和MongoDB的区别 https://www.cnblogs.com/tuyile006/p/6382062.html >>Memcached Memcached的优点: Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。 支持直接配置为session handle。 Memcached的局限性: 只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。 无法进行持久化,数据不能备份,只能用于缓存使用,且重启后数据全部丢失。 无法进行数据同步,不能将MC中的数据迁移到其他MC实例中。 Memcached内存分配采用Slab Allocation机制管理内存,value大小分布差异较大时会造成内存利用率降低,并引发低利用率时依然出现踢出等问题。需要用户注重value设计。 >>Redis Redis的优点: 支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算) 支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。

2-了解DBMS

安稳与你 提交于 2019-12-04 15:16:41
1.DB,DBS,DBMS的区别是什么? 1.1 DB 就是数据库,数据库是存储数据的集合,可理解为多个数据表 1.2 DBS 数据库系统,包括数据库,数据库管理系统和数据库管理人员DBA 1/3 DBMS 数据库管理系统,可对多个数据库进行管理 ,DBMS = 多个数据库(DB) + 管理程序,如Oracle,MySQL等。 2.数据库类型(模式)--关系型数据库SQL和非关系型数据库NOSQL 2.1 关系型数据库是DBMS的主流,使用最多的DBMS主要是Oracle,MySQL和SQL Server。 2.2 非关系型数据库包括键值型数据库,文档型数据库,搜索引擎和列存储,以及图形数据库 2.2.1 键值型数据库-通过Key-Values键值的方式来存储数据,其中Key和Values可以是简单的对象,也可以是复杂的对象。Key作为唯一的标识符,优点是查找速度快,在这方面明显优于关系型数据库,同时缺点也很明显,它无法像关系型数据库一样自由使用条件过滤,如果你不知道去哪里找数据,就需要遍历所有的键,这就会消耗大量的计算键值型数据库最典型的应用场景就是作为内容缓存,如Redis。 2.2.2 文档型数据库-用来管理文档,数据库中文档作为处理信息的基本单位,一个文档就相当于一条记录,如MongoDB。 2.2.3 搜索引擎-常见的全文搜索引擎有Elasticsearch

全栈项目|小书架|服务器开发-Koa2 连接MySQL数据库(Navicat+XAMPP)

回眸只為那壹抹淺笑 提交于 2019-12-04 12:12:08
为什么使用数据库 为什么需要数据库?-知乎 相比与文件系统,数据库具有以下优势: 高效率:查找效率高 高可用:可数据库共享 安全性强:数据不能随意修改 选择哪个数据库 数据库可以分为 关系型数据库 和 非关系型数据库 。 关系型数据库 :是指采用了关系模型来组织数据的数据库,关系模型指的就是二维表格模型(一个表由行和列组成),而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 代表的数据库有: 非关系型数据库(NoSQL) : NoSQL(NoSQL = Not Only SQL ) ,意即“不仅仅是SQL”。以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对。 元组 (tuple) 是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。 代表的数据库有: 参考1:关系型数据库和非关系型数据库区别、oracle与mysql的区别 参考2:非关系型数据库(NoSQL)相关概念介绍(附:常见的非关系型数据库) 参考3:数据库-维基百科 目前这个项目中使用的还是传统的 MySQL 数据库。 mysql2 使用 适用于 Node.js 的 MySQL驱动 ,侧重于性能。支持预备语句,非 utf8 编码,二进制日志协议,压缩, ssl 等。 地址:

关系型数据库

眉间皱痕 提交于 2019-12-04 10:33:16
关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1、A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。 比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。 2、C (Consistency) 一致性 一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。 例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。 3、I (Isolation) 独立性 所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。 比如现在有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。 4、D (Durability) 持久性 持久性是指一旦事务提交后

Redis

心已入冬 提交于 2019-12-04 06:46:09
Redis简介 NoSql NoSql(Not Only SQL)非关系型数据库 非关系型数据库 Redis Hbase Mongodb 关系型数据库 MySql Oracle SQLserver Redis的优势 数据保存在内存,存取速度快,并发能力强 数据持久化,可以保存在磁盘中 支持多种语言 支持数据过期 Redis的数据结构 Redis 主要key-value结构形式存储 String List Set Hash Redis的常用命令 对字符串操作 set key value 将字符串值value关联到key get key 返回key关联的字符串值 mset 同时设置一个或多个key-value对 mget 返回所有(一个或多个)给定key的值 incr key 将 key 中储存的数字值增1(key不存在,则初始化为0,再加1) decr key 将 key 中储存的数字值减1(key不存在,则初始化为0,再减1) incrBy key 自增多少 decrBy key 自减多少 对key的操作 keys * 获取所有key列表 del key 删除key set key value ex 时间 设置值时并设置过期时间 expire key xx 设置key的过期时间(xx秒后过期) ttl key 查看key的过期时间 flushall 清空整个redis服务器数据

Elasticsearch 在 7.X版本中去除type的概念

巧了我就是萌 提交于 2019-12-04 00:39:21
背景说明 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。 Elasticsearch 是一种NoSQL数据库(非关系型数据库),和常规的关系型数据库(比如:MySQL,Oralce等)的基本概念,对应关系如下: Elasticsearch:index --> type --> doc --> field MySQL: 数据库 --> 数据表 --> 行 --> 列 因为关系型数据库比非关系型数据库的概念提出的早,而且很成熟,应用广泛。 所以,后来很多NoSQL(包括:MongoDB,Elasticsearch等)都参考并延用了传统关系型数据库的基本概念。 一个客观的现象和事实如下: Elasticsearch 官网提出的近期版本对 type 概念的演变情况如下: 在 5.X 版本中,一个 index 下可以创建多个 type; 在 6.X 版本中,一个 index 下只能存在一个 type; 在 7.X 版本中,直接去除了 type 的概念,就是说 index 不再会有 type。 为何要去除 type 的概念? 为何不是在 6.X 版本开始就直接去除 type,而是要逐步去除type? Why?! 原因分析 1、为何要去除 type 的概念?

es和数据库关系对比

你说的曾经没有我的故事 提交于 2019-12-03 16:56:04
es类比传统关系型数据库: Relational DB -> Databases -> Tables -> Rows -> Columns Elasticsearch -> Indices -> Types -> Documents -> Fields Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表), 每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。 来源: https://www.cnblogs.com/guangxiang/p/11803491.html

数据库介绍

旧时模样 提交于 2019-12-03 16:42:10
什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据 更简单的理解形象,数据库和我们生活追踪存放杂物的储物间仓库性质一样,区别只是存放的东西不通,杂物间存放实体的物件,而数据库里存储的是数据,这样我们就对数据库有一个初步了解了。 数据库诞生于1950年,随着信息技术的发展和人类社会的不断进步,特别是2000年后,数据库不在仅仅是存储和管理数据了,而转变成用户所需要的各种数据管理的方式,数据库有很多种类和功能,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 数据库可分为:关系型数据库、非关系型数据库 关系型数据库 (1)关系型数据库介绍 关系型数据库模型是把复杂的数据结构归结为简单的二元关系(既二维格式表)。例如宏福教育某一期的学生关系就是一个二元关系,在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表上,通过对这些关联表格分类,合并,连接或选取等运算来实现数据的管理。 关系型数据库诞生距今已经有40多年了,从理论产生发展到现实产品,例如:大家最常见的mysql和oracle数据库,oracle在数据库领域里上升到了霸主的地位,形成每年高达数百亿美元的庞大产业市场