mongodb 搜索速度_初识 MongoDB 数据库
初识 MongoDB 数据库
前言
Flask 基础框架在之前的三篇文章中写完了。想要学习 web 相关的同学可以自己回顾翻一下,相信看完了,你也可以写出来一个简单的小案例来炫耀一波!
说到 web 开发,就不得不提到一个东西,数据库!之前在介绍实战项目时候,我提到过本次项目需要用到的数据库 - MongoDB。本篇来带你如何从零安装 MongoDB 数据库。下一篇介绍 Python 操作数据库。
数据库历史
开始之前,为了照顾一些非专业领域的朋友,先来介绍一下,什么是数据库?为什么会诞生出数据库的概念?以及为什么数据库下还要细分一些不同的领域数据库。
1. 伴随数据的发展历史所带来的载体
以下也是我自己查的资料(不一定准确,欢迎知道的读者来挑错!),虽然知道数据库设计出来的目的是什么,不过还是去检索了下它的发展由来历史。
数据库诞生的发展大概经历了三个重大时期。每一次都是数据爆发提升所带来的系统改变。
第一个时期是 1880 年美国人口普查。为了表示记录数据,发明了分拣机、制表机和记录机,记录完整的数据。打孔卡上的孔,表示数据。打空带便是信息的载体。
第二个时期 - 文件系统。其本身被认为是一个与文件柜极为相似的范例。这个时期我理解就是小学时候用到的文件夹,里面可以按照不同文件进行分类。
在电脑系统中,文件系统我们已经接触过了,其实就是对文件的进行操作管理的系统。比如你在 Windows 上创建 txt 文本之类的。
第三个时期在二十世纪六十年代,随着计算机速度和功能的增长,计算机被用于制造和更广泛的实验室使用。从而诞生了数据库以及数据库管理系统(DBMS),到20世纪60年代中期,许多此类系统已投入商业使用。
2. 数据库的设计目的
这里我就不用官方定义来说了,简单的举个栗子用自己的观点陈述一下。
早期我们使用文件来对数据进行记录,比如我们常用的 excel ,word 等。Excel 相信大家都用过,它本身的设计基于行和列,由行和列组成一个“二维表”的结构,来对数据进行存储。使用的过程中,我们可以用筛选等功能来处理数据。但面临的问题是,当数据过于庞大,文件就会打不开了。甚至可能出现程序崩坏的情况。
那么此时,就需要一个大数据容量的东西来存储数据,所以数据库设计最重要的本质就是存储大量数据。同时,再此基础上提供了对数据操作的简易性,对数据的完整性,以及对数据的安全性等特性。
下面是从 Quora (类似知乎,不对,应该是知乎仿照它...)查到的一个问题,为什么我们需要数据库?英语好的同学可以看下,不翻译了。
3. 关系型数据库与非关系型数据库
关系型数据库:
SQL (Structured Query Language) 数据库,指关系型数据库。主要代表:SQL Server,Oracle,MySQL(开源),PostgreSQL(开源)。
现在市面上用的最多的关系型数据库就是以上几个代表,简单的说,其实关系型数据库原理类似 Excel ,由行和列组成一张“二维”关系的数据表。
使用 SQL 语句即可对数据库进行操作,比如创建库,创建表,查询表数据等。。。SQL 语句就像下面这样:
select * from user; # 查找用户表
查询结果也类似这样的展现形式:
非关系型数据库:
NoSQL(Not Only SQL)泛指非关系型数据库。主要代表:MongoDB,Redis,CouchDB。
有了 SQL 数据库,为什么还有 NoSQL 数据库?
在当今互联网时代,数据越来越庞大,关系数据库运行的慢,处理大数据的大多数情况是 NoSQL 比较高效,但 NoSQL 并不能完全取代关系数据库,有些复杂操作并不能处理。
NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。
举个常见的例子,仅是个人猜测,我们日常用的微博(若有错误,还望指出),它处理每个明星与粉丝之间的关系,这么种类繁多的属性字段,如果用 NoSQL 远比 SQL 要好很多,因为字段与字段之间没有相关性。
说下为什么本交通统计项目采用的是 MongoDB 呢?理由很简单,因为高德地图返回的数据类型是 JSON 格式,用 MongoDB 兼容性非常好,直接存入即可。
安装 MongoDB
不同平台的下载地址都是一样的,搜索引擎搜索 MongoDB :
这下载入口做的不太明显,我也是找了一小会儿,哈哈哈!~大家根据自己电脑系统下载不同版本即可。Package MSI就是windows的一键安装,我习惯下 ZIP ,所以选到了 ZIP 进行下载,大概 200 MB+。 解压后,进入 bin :
如果此时你直接双击打开,能看到的结果就是黑框一闪而过,然后....然后就没啥了。。。因为你打开的方式不太对!
接下来:
手动在此目录下,创建一个文件 mongo.config:
记事本或者什么其他工具,打开编辑,配置下 Mongo 的数据存储位置以及日志存储位置:
dbpath=C:/Users/asus/Desktop/mongodb/db
logpath=C:/Users/asus/Desktop/mongodb/log/mongodb.log
这里的路径一定要是绝对路径,改成自己的即可,同时在创建对应指定目录,db 和 log:
最后一步,进入 bin ,然后 shift + 鼠标右键,在此处打开 shell 窗口,输入:
mongod.exe --config C:UsersasusDesktopmongodbbinmongo.config --install --serviceName "MongoDB" --journal
这里的 --config 参数后面的文件也必须是绝对路径。
解释下,上述代码的意思是将 mongo 作为服务的形式配置在 windows 电脑上,便于我们启动。按下 win + R 键,打开服务:
这个就是刚才我们配置的 mongodb 服务,右键启动就好。启动完毕,可以看下刚才 mongo 的 db 和 log 目录下是不是生成了一些文件呢:
以上,mongodb 数据库安装完毕。
MongoDB 可视化工具
依然官网,下载可视化工具:
类似 mongodb ,点到 tool 处下载,然后让你填一个信息,瞎写就好,提交完就能下载了:
可视化工具,直接打开 exe 即可:
配置默认即可,没改动过,localhost代表本机,port 27017 是 mongodb 的默认端口:
完工!
可视化工具操作 MongDB
专业人员不要觉得用可视化工具来操作显得很 lowB ,实际上工具本来就是可以帮我们节省大量的时间。而每个视图背后对应的本质还是命令代码。
1. 创建数据库
2. 填写数据库名称,以及 Collection 名称
3. 创建文档
插入完成后,转化为表来展示,看看是否和我们常见的 Excel 相似呢:
总结
对于 MongoDB 的具体内容,以及每个官方字段的含义,放在下一篇介绍了!本篇篇幅又超长了。。。
下篇文章,如何使用 Python 操作 MongoDB 数据库(拖延了一篇。。。),敬请期待!
如果有什么问题,欢迎小伙伴们留言探讨!
mongodb 搜索速度_初识 MongoDB 数据库相关推荐
- mongodb 搜索速度_MongoDB 模糊查询慢的问题 以及相关解决方案的探索
最近公司有一个项目,数据库用的是 MongoDB,其中一个 Collection 的有 1300 万条数据,需求中需要对这个 Collection 支持指定 field 和 keyword 的搜索功能 ...
- mongodb存储数据_在MongoDB中存储分层数据
mongodb存储数据 继续使用MongoDB进行 NoSQL之旅,我想谈一谈一个经常出现的特定用例:存储分层文档关系. MongoDB是很棒的文档数据存储,但是如果文档具有父子关系,该怎么办? 我们 ...
- 给服务器mongodb设置权限_认识 MongoDB
大部分数据库都是 C/S 架构,服务端提供服务,操作时需要使用客户端. MongoDB 也是如此,需要启动服务端进程 mongod 提供服务,然后使用其自带的 mongo 命令行程序或者其它客户端与服 ...
- MongoDB的学习,初识MongoDB
MongoDB MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...
- mongodb 搜索速度_MongoDB数据库查询性能提高40倍的经历分享
前言 数据库性能对软件整体性能有着至关重要的影响,本文给大家分享了一次MongoDB数据库查询性能提高40倍的经历,感兴趣的朋友们可以参考学习. 背景说明 1.数据库:MongoDB 2.数据集: A ...
- mac mongodb可视化工具_「时序数据库」和MongoDB:第3部分-查询、分析和呈现
在<时间序列数据和MongoDB:第1部分-简介>中,我们回顾了理解数据库的查询访问模式需要询问的关键问题.在<时间序列数据和MongoDB:第2部分-模式设计最佳实践>中,我 ...
- mongodb 搜索速度_Mongodb查询缓慢问题处理
早上突然收到配置中心服务告警,Http check出现问题,赶紧访问下服务看看是否Cabot监控系统的误报,发现服务时而正常,时而出现500内部服务器错误,赶紧排查问题. 1.问题定位 首先看看当前配 ...
- mongodb java 学习_《 mongodb 学习 》java 基本操作
环境 springboot 结合 monggodb 一.pom.xml org.springframework.boot spring-boot-starter-data-mongodb 配置: sp ...
- 提高mysql查询速度_如何提高数据库查询速度
1.用程序中, 保证在实现功能的基础上,尽量减少对数据库的访问次数: 通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担: 能够分开的操作尽量分开处理,提高每次的响应速度: 在数据窗 ...
最新文章
- mybatis 如何判断重复插入_MyBatis常见面试题3:数据库插入重复如何处理
- SAP中如何给成本要素分配多个默认成本中心
- Scala Iterator(迭代器)详解
- [SEO]让你的Asp.Net网站自动生成Sitemap——XmlSitemap
- Tomcat Get请求的巨坑
- xss绕过尖括号和双括号_xss挑战平台练习
- ubuntu复制文件到另一个文件夹_简单介绍一下电脑中的文件或文件夹的复制、移动及删除的操作方式...
- 国内搭建vite vue和国外的不一样的,跟着教程会踩很多坑
- malware analysis、Sandbox Principles、Design Implementation
- mybatis动态传入表名、列名
- mysql数据库入门传智播客答案_MySQL数据库入门
- 贝叶斯网络、马尔可夫模型、马尔可夫过程、马尔可夫链、马尔可夫网络基本概念
- 直接sql 添加字段赋值
- 《横向领导力》-简述
- Linux:进程(二)
- 【JVAV】—继承、多态、抽象类
- 解锁“不可能”:苏门答腊犀牛让我开始重新思考AI
- 用Python爬虫做一个短视频+评论下载小工具
- Ubuntu 16.04解决双系统时间冲突问题
- Linux easy-rsa制作证书
热门文章
- C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
- for 创建一个方法:键盘录入一个数 ,求它的 阶乘 及 阶乘的和
- 内网渗透-域内有网和无网
- [译] APT分析报告:09.伊朗APT34更新武器库——SideTwist变体
- HarmonyOS之常用组件Text的功能和使用
- 在OSI参考模型中,当两台计算机进行文件传输时,为防止中间出现网络故障而重传整个文件的情况,可通过在文件中插入同步点来解决,这个动作发生在( )
- 104. Maximum Depth of Binary Tree 二叉树的最大深度
- 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - D. 数的分解
- 手把手教你发布一个Python包
- Ubuntu18.04安装ROS Melodic(亲测有效)