mysql vs mongodb
Comments
MongoDB 是NoSQL 数据库,适合存JSON格式数据,MySQL是关系型数据库,适合存table格式数据
MongoDB扩展性更好,MySQL支持主从和cluster但是感觉不咋样
mongodb 没有事务、联表(join)查询的支持,其实有inlook 简单的联表查询支持的
mongodb 插入更新大量数据比较快,mysql 查询大量相关数据比较快
MongoDB有很好的HA和恢复支持
some important quotes:
- MongoDB is an ideal choice if you have unstructured and/or structured data with the potential for rapid growth while MYSQL is a great choice if you have structured data and need a traditional relational database.
In general, a project with frequently updated data will benefit more from a relational database than a nonrelational one. An example of such a project would be any kind of transactional system, like an ecommerce platform, a workflow application, or a payment processor.
On the other hand, a project that rarely updates information, such as an analytics application where data doesn't change after it has been collected, will benefit more from a nonrelational database.
可以考慮使用 NoSQL (譬如 MongoDB),如果
- 想快速啟動小專案測試 idea
- 資料格式不確定 (unstable schema),而未來很有可能調整
- 資料之間沒有複雜的關聯、或未來讀取資料時不需要使用 JOIN 的功能
- 著重在快速讀取資料與可用性,而非 ACID
可以考慮使用 RDBMS (譬如 MySQL),如果
- 已經有明確的資料格式,未來不會大幅的變動
- 資料之間的關聯很重要
- 想要更有效率的讀取資料,未來會大量使用到 JOIN 的功能
- 更著重在資料操作的準確性與一致性 (ACID)
上述的情境主要是在個人專案上,如果實際在業界開發,還需要考量到
- 商業邏輯的設計
- 目前使用的系統(如何加入,需不需要做調整或轉移)
- 部署方式
- 成本計算
- 維護與營運考量
- 未來的擴充性
| MongoDB | MYSQL |
|---|---|
| MongoDB represents data as JSON documents. |
MySQL represents data in tables and rows. |
| In MongoDB, you don’t need to define the schema. Instead, you just drop in documents don’t even need to have the same fields. | MySQL requires you to define your tables and columns before you can store anything, and every row in a table must have the same columns. |
| MongoDB has a pre-defined structure that can be defined and adhered to, but also, if you need different documents in a collection, it can have different structures. | MySQL uses Structured Query Language (SQL) for database access. You can’t change the schema. |
| Supported languages are C++, C | Supported languages are C++, C and JavaScript |
| Ongoing development is done by MongoDB, Inc. | Constant development is done by the Oracle Corporation. |
| MongoDB supports built-in replication, sharding, and auto-elections. | MySQL supports master-slave replication and master replication. |
| If an index is not found, every document within a collection must be scanned to select the documents which offer a match to the query statement. | If an index is not defined, then the database engine needs to scan the complete table to find all relevant rows. |
| GPL v2/ Commercial license available OD | GNU AGPL v3.0/ Commercial licenses available OD |
| If most of your services are cloud based MongoDB is the best suited for you. | If data security is your priority then MYSQL is the best option for you. |
| MongoDB places no restrictions on schema design. | MySQL requires you to define your tables and columns before you can store anything. Every row in a table must have the same columns. |
| MongoDB uses JavaScript as query language. | MySQL uses the Structured Query Language (SQL). |
| MongoDB doesn’t support JOIN. | MySQL supports JOIN operations. |
| It has the ability to handle large unstructured data | MySQL is quite slow in comparison to MongoDB while dealing with large databases. |
| Real-time analytics, content management, internet of things, mobile apps | Structured data with clear schema |
| No schema definition required so lesser risk of attack due to design | Risk of SQL injection attacks |
| An ideal choice if you have unstructured and/or structured data with the potential for rapid growth. | A great choice if you have structured data and need a traditional relational database. |
Ref:
https://www.bmc.com/blogs/mongodb-vs-mysql/#Disadvantages_of_both
https://blog.panoply.io/mongodb-and-mysql
https://www.guru99.com/mongodb-vs-mysql.html
mysql vs mongodb的更多相关文章
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
- MySQL与MongoDB的操作对比,以及区别
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方 ...
- MySQL vs. MongoDB: Choosing a Data Management Solution
原文地址:http://www.javacodegeeks.com/2015/07/mysql-vs-mongodb.html 1. Introduction It would be fair to ...
- [转]MySQL与MongoDB的操作对比
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库.它们各有各的优点,关键是看用在什么地方 ...
- 转:视觉中国的NoSQL之路:从MySQL到MongoDB
起因 视觉中国网站(www.chinavisual.com)是国内最大的创意人群的专业网站.2009年以前,同很多公司一样,我们的CMS和社区产品都构建于PHP+Nginx+MySQL之上:MySQL ...
- 阿里云下Linux服务器安装Mysql、mongodb
阿里云下Linux服务器安装Mysql.mongodb 一.MySQL的安装和配置 1.安装rpm包 rpm -Uvh http://dev.mysql.com/get/mysql-community ...
- MySQL、MongoDB、Redis 数据库之间的区别
NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路. M ...
- MySQL和Mongodb的区别与应用场景对比
MySQL是关系型数据库 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺点 ...
- python mysql redis mongodb selneium requests二次封装为什么大都是使用类的原因,一点见解
1.python mysql redis mongodb selneium requests举得这5个库里面的主要被用户使用的东西全都是面向对象的,包括requests.get函数是里面每次都是实例 ...
- 从MySQL和MongoDB的对比,看SQL与NoSQL的较量
张家江,网易乐得高级工程师. 贵金属(注:贵金属为笔者部门业务)的行情系统提供的接口通过Redis获取数据,目前使用Redis最多只存储了大概8000条左右的分钟k的行情数据,考虑到将来可能会有更大数 ...
随机推荐
- Konva 内容重叠无法触发点击事件的解决方法
写在前面: 环境:Vue3 + Konva + vite 在绘制界面时踩坑,主要是关于 listening 属性的使用 在绘制界面时,不免出现有内容重叠的情况,这会影响事件的触发 使用设置listen ...
- Java-Cookie客户端会话技术
会话技术 会话:一次对话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cook ...
- [oeasy]python0048_注释_comment_设置默认编码格式
注释Comment 回忆上次内容 使用了版本控制 git 制作备份 进行回滚 尝试了 嵌套的控制结构 层层 控制 不过 除非 到不得以 尽量不要 太多层次的嵌套 这样 从顶到底 含义 明确 ...
- 第六节 JMeter基础-中级登录【用户自定义变量】
1.认识JMeter (1)配置元件:配置对应的一些数据 (例如:HTTP请求默认值.用户定义的变量) (2)[HTTP请求默认值]:HTTP请求默认值是设置的Web服务器部分信息,可以贯穿多个接口. ...
- JavaWeb编写登录注册案例并把数据插入MySQL数据库中
小白学习了这么久的java,第一次上手编写一个完整的登录以及注册案例,麻雀虽小五脏俱全!!!! 案例: 登录和注册 第一:所需创建的包以及相关类 1,domain包(也就是平时所说的Javabean) ...
- NIO的三大核心组件详解,充分说明为什么NIO在网络IO中拥有高性能!
一.写在开头 我们在上一篇博文中提到了Java IO中常见得三大模型(BIO,NIO,AIO),其中NIO是我们在日常开发中使用比较多的一种IO模型,我们今天就一起来详细的学习一下. 在传统的IO中, ...
- nodejs的服务器,用ffmpeg推流
http://m.zhizuobiao.com/node/node-19061200018/ ffmpeg -list_devices true -f dshow -i dummyffmpeg -f ...
- 在Django REST framework (DRF) 中,`request.query_params` 和 `request.data` 区别
在Django REST framework (DRF) 中,request.query_params 和 request.data 都是用来获取请求中的数据,但是它们之间有一些关键的区别: requ ...
- 同时使用mp和mybatis,我的type-aliases-package失效了
mybatis: #mapper配置文件 mapper-locations: classpath:mapper/*.xml type-aliases-package: com.sky.entity c ...
- Python和RPA网页自动化-处理alert弹框
以百度为例,分别使用python和RPA自动化完成以下步骤:设置->搜索设置->保存设置->确定 1.python代码如下 注意:[已经记录下您的使用偏好]弹框是无法捕获网页源代码的 ...