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的行情数据,考虑到将来可能会有更大数 ...
随机推荐
- Centos7安装Redis详细步骤(配置开机自启)
Redis 获取redis安装包使用tar命令解压. $ tar -zxzf redis-6.2.6.tar.gz 编译和安装redis 进入redis目录,执行make编译. $ cd redis- ...
- JS --函数进阶 --手稿
- leetcode简单(数组、字符串):[219, 268, 349, 414, 485, 541, 557, 821, 925, 977]
目录 219. 存在重复元素 268. 丢失的数字 349. 两个数组的交集 414. 第三大的数 485. 最大连续 1 的个数 541. 反转字符串 II 557. 反转字符串中的单词 III 8 ...
- [oeasy]python0118_语言的发展_希腊字符_拼音文字_亚历山大大帝
希腊字符回忆上次内容 尼罗河流域 的 埃及圣书体 是象形文字 两河流域 的 苏美尔楔形文字 不是象形文字 做生意的 腓尼基人 利用 埃及圣书体 的 字型 苏美尔楔形文字 的 写法 构造出 腓尼基字符 ...
- Django model 层之Models与Mysql数据库小结
Django model 层之Models与Mysql数据库小结 by:授客 QQ:1033553122 测试环境: Python版本:python-3.4.0.amd64 下载地址:https:// ...
- AI时代你应聚焦的领域在哪里
1. 每个人都应该拥抱AI 随着AI的飞速发展,把我们带到了一个全新的时代.在这个时代,AI将逐步渗透到各个方面,比如:自动驾驶.智能家居.医疗诊断.大模型等等.每个人都应该积极拥抱AI,让AI给我们 ...
- 阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings
阅读翻译Mathematics for Machine Learning之2.7 Linear Mappings 关于: 首次发表日期:2024-07-23 Mathematics for Machi ...
- browsermob-proxy-2.1.4启动失败,报错ProxyServerError: The Browsermob-Proxy server process failed to start
报错信息:ProxyServerError: The Browsermob-Proxy server process failed to start. Check <_io.TextIOWrap ...
- ORA-01658创建表或索引报错分析
一.报错信息 某项目最近在 SQL Loader 导数据时偶尔会报错,类似如下: SQL loader ORA-01658 unable to creale INITIAL extent for se ...
- 这本vue3编译原理开源电子书,初中级前端竟然都能看懂
前言 众所周知vue提供了很多黑魔法,比如单文件组件(SFC).指令.宏函数.css scoped等.这些都是vue提供的开箱即用的功能,大家平时用这些黑魔法的时候有没有疑惑过一些疑问呢. 我们每天写 ...