简介:MySQL概述:关系型数据库。无论数据还是索引都存放在硬盘中。到要使用的时候才交换到内存中。能够处理远超过内存总量的数据。在不同的引擎上有不同 的存储方式。查询语句是使用传统的 SQL 语句,拥有较为成熟的体系 ...
MySQL概述:关系型数据库。无论数据还是索引都存放在硬盘中。到要使用的时候才交换到内存中。能够处理远超过内存总量的数据。在不同的引擎上有不同 的存储方式。查询语句是使用传统的 SQL 语句,拥有较为成熟的体系,成熟度很高。开源数据库的份额在不断增加,MySQL 的份额页在持续增长。缺点:在海量数据处理的时候效率会显著变慢。MySQL特点:1. 使用c和c++编写,并使用了多种编译器进行测试,保证源代码的可移植性2. 支持多种操作系统3. 为多种编程语言提供可API4. 支持多线程,充分利用CPU资源优化的SQL查询算法,有效的提高查询速度5. 提供多语言支持,常见的编码如:GB2312、BIG5、UTF86. 提供TCP/IP、ODBC和JDBC等多种数据库连接途径提供用于管理、检查、优化数据库操作的管理工具7. 大型的数据库。可以处理拥有上千万条记录的大型数据库8.支持多种存储引擎9. MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库10. MySQL使用标准的SQL数据语言形式11. Mysql是可以定制的,采用GPL协议,你可以修改源码来开发自己的MySQL系统12. 在线DDL更改功能13. 复制全局事务标识14. 复制无崩溃从机15.复制多线程从机 数据量和性能的比较:当物理内存够用的时候,Redis > MongoDB > MySQL当物理内存不够用的时候,Redis 和 MongoDB 都会使用虚拟内存。实际上如果Redis要开始虚拟内存,那很明显要么加内存条,要么你就该换个数据库了。但是,MongoDB 不一样,只要,业务上能保证,冷热数据的读写比,使得热数据在物理内存中,mmap 的交换较少。MongoDB 还是能够保证性能。有人使用 MongoDB 存储了上T的数据。MySQL,MySQL根本就不需要担心数据量跟内存下的关系。不过,内存的量跟热数据的关系会极大地影响性能表现。当物理内存和虚拟内存都不够用的时候,估计除了 MySQL 你没什么好选择了。其实,从数据存储原理来看,我更倾向于将 MongoDB 归类为硬盘数据库,但是使用了 mmap 作为加速的手段而已。 使用场景的不同:1、MongoDB适用于:①网站数据:适合实时的插入,更新与查询,并具备网站实时数据存储所需对的复制及高度伸缩性;②缓存:由于性能很高,也适合作为信息基础设施的缓存层,在系统重启之后,搭建的持久化缓存可以避免下层的数据源过载;③大尺寸、低价值的数据也是MongoDB的最佳选择,使用传统的关系数据库存储一些数据时可能会比较贵,再次之前很多程序员往往会选择传统的文件进行存储④高伸缩的场景,非常是个由数十或者数百台服务器组成的数据库⑤用于对象及json数据的存储,MongoDB的bson数据格式非常适合文档格式化的存储及查询。2、而mysql还是更加适用于:①高度事务性的系统。例如银行或者会计系统,传统的关系型数据库目前还是更实用于需要大量原子性复杂事务的应用程序②传统的商业智能应用,针对特定问题的BI数据库会对产生高度优化的查询方式,对于此类应用,数据仓库可能是更合适的选择3、Redis应用场景:①用来做缓存-redis的所有数据时放在内存中的②可以在某些特定应用场景下替代传统数据库--比如社交类的应用 ③在一些大型系统中,巧妙的实现一些特定的功能:session共享、购物车 本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yx10011.com学习互联网营销技术请到巅云建站www.yx10011.com。 |