- mysql高性能-学习笔记(续集) 11-25
- MongoDB vs. MySQL 11-25
- MongoDB是个什么东东? 11-25
- Mongodb 优势 11-25
- MongoDB Map Reduce 11-25
- 如何用Scala实现MongoDB连接 11-25
- MongoDB申请IPO了 11-25
- 网易蜂巢MongoDB服务重磅来袭 11-25
- 实战mongodb课程介绍-更新中 11-25
- MongoDB 动态字段设计 11-25
mysql高性能-学习笔记(续集)
发布者: superzhang | 发布时间:2017-11-25mysql schema与数据类型优化一丶整数类型
整数类型:(whole number 和 real number),whole number可以使用tinyint,smallint,mediumint,int,bigint,分别占用8,16,24,42,64位。real number主要有float和double,支持浮点运算,float 和 double 容易产生误差,decimal存储精确的小数,申明语法为decimal(M,D),M整数位,D小数位。
字符串类型:字符串类型主要有varchar和char类型,varchar用于存储可变长的字符串,char用于存储变长的字符串。varchar需要一到两个字节存储字符串的长度。
blob和text:为存储很大的数据而设计的数据类型,blob采用二进制存储,text采用字符存储。当blob和text太大时,会存储一个指针指向外部的实际数据。
日期和时间类型:dateTime 时间从1001到9999年,封装为(yyyymmddhhmmss)格式,需要8个字节存储,精确到秒。timestamp从1970年开始,,需要4个字节,精确到秒,时区。
bit位存储类型,set类型,位的集合。
二丶Schema设计Schema:表的模式;
设计数据的表,索引,以及表
MongoDB vs. MySQL
发布者: superzhang | 发布时间:2017-11-25每个人都喜欢漂亮的相貌。
我最新欢的节目之一是英国的大型烘焙表演(也称也称为大英博物馆在池塘的另一边烘焙),参赛竞争者赢得英国最佳面包师的头衔。都是各种业余面包师和各种随之而来的混乱。
这是相当激烈的,从来没有想到盯着烤箱或者面包可能是焦虑诱导。
别跟我谈bingate(Baked Alaska controversy:烤阿拉斯争议)。我现在对烤阿拉斯加有强烈的感觉。(烤阿拉斯加是一种由冰淇淋和蛋糕组成的甜点食品,配上棕色蛋白酥皮。)
但是,我最喜欢的节目就是当所有的参赛者将他们的成品放在评审桌上时。当摄相机掠过桌上时,观众可以看到每个面包师的面包或糕点与竞争对手相抗衡。对我来说,他们都是美丽的,正如Mary Berry所说的那样。
你可以认为数据库管理软件不如海绵蛋糕那么甜,但它可以是一样美味。想象一下,找到一个适合并满足IT团队或公司的规模和需求的DBMS 。
现在,如果你在寻找类似的东西,总会有一些替代品,但是在流行的两种解决方案中,如何回避呢?我必须说,这不是一个半生不熟的主意。
下面,我收集了一些信息从直接比较两种解决方案的软件工具 Capterra (你可以找到它在每一个清单的标志),以及每个解决方案的优点和缺点。由于同时发生 免费和开源数据库软件,
MongoDB是个什么东东?
发布者: superzhang | 发布时间:2017-11-25MongoDB最初于2007年开发,当时公司正在建立一个类似于窗口天蓝(window azure)的服务平台。
“Window azure是由Microsoft创建的云计算平台和基础设施,通过全球网络构建,部署和管理应用程序和服务。”
MongoDB由位于纽约的一个名为10gen的组织开发,现在被称为MongoDB Inc.,它最初被开发为PAAS(平台即服务)。 2009年晚些时候,它被作为一个由MongoDB公司维护和支持的开源数据库服务器在市场上引入。
MongoDB的第一个真正产品是从2010年3月发布的MongoDB 1.4版本开始的。2014年1月10日发布的最新版本:MongoDB2.4.9。
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
立即观看完整教程,请直接访问极客学院 Wiki
概述
MongoDB 是一款跨平台、面向文档的数据库。用它创建的数据库可以实现高性能、高可用性,并且能够轻松扩展。MongoDB 的运行方式主要基于两个概念:集合(collection)与文档(document)。
数据库
数据库是集合的实际容器。每一数据库都在文件系统中有自己的一组文件。一个 MongoDB 服务器通常有多个数据库。
集合
集合就是一组 MongoDB 文档。它相当于关系型数据库(RDBMS)中的表这种概念。集合位于单独的一个数据库中。集合不能执行模式(schema)。一个集合内的多个文档可以有多个不同的字段。一般来说,集合中的文档都有着相同或相关的目的。
文档
文档就是一组键-值对。文档有着动态的模式,这意味着同一集合内的文档不需要具有同样的字段或结构。
下表展示了关系型数据库与 MongoDB 在术语上的对比:
关系型数据库MongoDB数据库数据MongoDB Map Reduce
发布者: superzhang | 发布时间:2017-11-25Map-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。
MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用。
MapReduce 命令
以下是MapReduce的基本语法:
>db.collection.mapReduce(
function() {emit(key,value);}, //map 函数
function(key,values) {return reduceFunction}, //reduce 函数
{
out: collection,
query: document,
sort: document,
limit: number
}
)
使用 MapReduce 要实现两个函数 Map 函数和 Reduce 函数
如何用Scala实现MongoDB连接
发布者: superzhang | 发布时间:2017-11-25文章开始之前,先简单介绍一下Scala,Scala是一门多范式编程语言,一种类似java的编程语言 ,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。可能不久之前,编程语言还可以毫无疑义地归类为“命令式”或者“面向对象”。但Scala却代表了一个新的语言类别,它抹平了这些人为划分的界限,它也确实抓住了很多开发者的眼球,如果你粗略地浏览Scala的网站,你会觉得Scala是一种纯粹的面向对象编程语言,但仔细研究就会发现,它无缝结合了命令式编程和函数式编程风格。
大数据时代的席卷而来,MongoDB也着实在开发者的世界火了一把。MongoDB已经有了许多编程语言的扩展驱动程序集。在下面的教程中,开发者将会看到使用Scala驱动程序连接到MongoDB的具体方法,包括通过设置SSL提高连接的安全性。
驱动程序安装
就像Java连接MySQL数据库需要JDBC一样,Scala连接MongoDB数据库也需要一种中间件,Casbah是MongoDB官方的Scala驱动程序包。M
MongoDB申请IPO了
发布者: superzhang | 发布时间:2017-11-252009年发表的MongoDB为一开源数据库,全球下载次数超过3000万次,已有超过4300家大型企业客户,尽管该公司目前仍处于亏损状态,但上周周四已向美国证交会提出IPO申请,准备登上那斯达克,交易代号为MDB。
该公司在2009年发表的同名数据库为一文件导向数据库,被归类为NoSQL数据库,迄今下载次数超过3000万,拥有超过4300家的大型客户,有一半以上的财富100强企业采用MongoDB,为全球最受欢迎的NoSQL数据库。
MongoDB在供应开源码产品的同时也推出订阅服务,提供MongoDB的技术支援,以及各种可搭配MongoDB的私有产品,目前订阅服务约占MongoDB总营收的9成。迄今MongoDB仍是亏损的,今年上半年该公司创下6790万美元的营收,但亏损了4576万美元。
尽管处于亏损状态,但MongoDB的各方面都在成长中,例如大型客户数量从去年1月的1700家成长到今年1月的3200家,截至今年7月底则有4300家。此外,该公司营收也从2014年的4080万美元
网易蜂巢MongoDB服务重磅来袭
发布者: superzhang | 发布时间:2017-11-25来源标题:网易蜂巢MongoDB服务重磅来袭
近日,网易云基础服务“网易蜂巢”透露,MongoDB服务作为重要的NoSQL数据库组件现已正式对外上线!通过网易蜂巢的MongoDB服务,用户不但能体验到MongoDB集关系型数据库和NoSQL数据库精华于一身的强大功能,还能进一步享受最新的MongoDB 3.4版本、数据私网内安全访问、全面而灵活的实例监控、节点故障快速恢复、高效的数据自动备份等服务。
MongoDB是目前最为流行的NoSQL数据库,在2017年1月新鲜出炉的数据库权威排行榜上,MongoDB名列第四,是前五中唯一的NoSQL数据库,遥遥领先其他NoSQL数据库。MongoDB集关系型数据库和NoSQL数据库的精华于一身,既有关系型数据库的强大查询功能、强一致性和丰富索引功能的优点,同时又具备了NoSQL数据库灵活的数据模式(JSON-Style)、更好的扩展性和更高的性能。
据悉,网易蜂巢的MongoDB服务基于最新的3.4版本,网易蜂巢也是业界第一个上线Mon
实战mongodb课程介绍-更新中
发布者: superzhang | 发布时间:2017-11-25MongoDB 是一个基于分布式文件存储的数据库。
由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
mongodb是目前在IT行业非常流行的一种非关系型数据库(NoSql)
其灵活的数据存储方式,备受当前IT从业人员的青睐
Mongo DB很好的实现了面向对象的思想(OO思想)
在MongoDB中 每一条记录都是一个Document对象
MongoDB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
本套课程是对spring提供的操作mongodb框架进行讲解,能够让大家快速上手,从无到有自己搭建项目框架,熟练的用spring data mongodb来操作mongodb。
课程大纲如下:
Mongodb介绍/安装
命令行增删改查操作
客户端工具mongochef使用
JAVA驱动操作Mongodb
Spring Data Mongodb框架搭建
Spring Data Mongodb框架之Mong
MongoDB 动态字段设计
发布者: superzhang | 发布时间:2017-11-25适宜读者人群
MongoDB开发者
基础需求
产品: "我们要为现有的表单增加一个伟大的功能, 允许用户增加想要的字段"
技术目标version 1
存储动态表单数据(新增字段无需修改Schema)
首先讲一讲MongoDB支持的索引有哪几种
普通字段索引
// 假如我们的文档长这样内嵌文档索引
// 假如我们的文档长成了Object数组文档索引
// 假如我们的文档长成了数组看似上面只有都无法做到动态增加字段的功能
程序员A和程序员S发生如下对话:
程序猿A: "那么我们需要增加另外一个collection来存储动态的内容"
程序猿S: "但MongoDB对关联查询的支持很弱啊, 都没法关联排序, 要是后面产品说要加 排序筛选 的功能我们就懵逼了呀☹️ , 唉~ 早知如此就不用MongoDB了"
再重新审视需求
存储动态表单数据
需要支持筛选和排序
技术目标version2
增加字段同时还要可以索引
解决方案
使用数组来存储动态字段
增加描述collection用来记录用户的表单配置
存储结构如下:
//描述