主流数据库优缺点以及性能分析

写在前头:事先说明这个需要长期更新,不可能一次完成,如果你需要完全版的话,那么这个可能不适合你,就不浪费你们的时间啦。还有些数据库信息是参考别人的,有问题、有补充,请留言,我会积极的参考你们的建议。如果有条件我会亲自去尝试验证下面每一种数据库,集成一个docker镜像。        —————xLplus


version1.0.0 Create MySql 2020年4月1日16:54:50
version1.0.1 Update SqlServer 2020年4月2日08:58:29
version1.0.2 Update partial Oracle 2020年4月7日17:21:04


关系型数据库(Sql:MySql,SqlServer,Oracle)/非关系数据库(NoSql:MongoDB,Redis,Memcache)比较

1.RDBMS
2.高度组织化结构化数据
3.结构化查询语言
4.数据和关系都存储在单独的表中
5.数据操纵语言,数据定义语言
6.严格的一致性
7.基础事务
8.ACID

文件型数据库(Sqlite)

 

1.MySql数据库

MySql数据库是比较常见的数据库。(shift+enter换行)
简介:balabalabalabalabalabalabalabalabalabalabalabala
优点
1.开放源代码且无版权制约,自主性及使用成本低(对比sql server)
2.服务器相对稳定,毕竟是老牌数据库,技术比较成熟
3.体积相对较小,一键安装,比较好维护
4.名声相对较广(如果给一个企业装mongodb的话,别人就会问你xxx,如果说安装mysql的话基本没啥问题)
5.MySQL支持多种操作系统,跨平台,提供多种API接口,支持多种开发语言
小优点
1.关键词replace(对比MySql)好用啊
2.忽略大小写(对于像我一样的来说)
缺点
1.安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变(http://m.zhizuobiao.com/mysql/mysql-18051700149/)
2.缺乏标准的RI(Referential Integrity-RI)机制;Rl限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。(http://m.zhizuobiao.com/mysql/mysql-18051700149/)
3.不支持热备份(http://m.zhizuobiao.com/mysql/mysql-18051700149/)
小缺点
1.每个版本都会有一些变化,导致你写的语句/ORM可能出现不兼容。
性能
1.千万级性能测试

数据库类型:MySQL 5.7
CPU:1核
数据库内存:1024MB

(参见:https://zhuanlan.zhihu.com/p/70608054)
2.索引、数据库连接池压力测试
(参见:https://blog.csdn.net/zhizhengguan/article/details/88345192)
(1)有索引的qps在1万2左右,没索引的qps只有14,两者相差1000倍;
(2)有索引的sql执行时间不论线程数是多少都不到一秒,而无索引的sql随着线程数的增加,其执行时间也会增加,最高到132s,相差倍数可是千倍万倍;
(3)数据库的线程数达到128时,会使数据库性能明显下降;当增加cpu和内存时,也不能很好的解决这个问题,这可能是my.cnf和linux 内核参数配置的不合适导致,后期仔细研究这些参数,使数据库性能上一个新的台阶;
(4)磁盘IO能力固定,只能从数据库和操作系统参数着手。

 

2.SqlServer数据库

SqlServer数据库是比较常见的数据库。(shift+enter换行)
简介:balabalabalabalabalabalabalabalabalabalabalabala
优点:(https://www.cnblogs.com/ly133333333333333/p/7784605.html)
1.易用性
2.适合分布式组织的可伸缩性
3.用于决策支持的数据仓库功能
4.与许多其他服务器软件紧密关联的集成性
5.良好的性价比
6.为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力
小优点:
1.如果使用c#开发的话,会发现EF对于sqlserver的功能强大,我又可以偷懒啦
2.sqlserver的管理工具比较强大,还有实时监测
3.运维成本,这里说的是高级运维方面会比较轻松
缺点:(https://www.cnblogs.com/ly133333333333333/p/7784605.html
1.开放性 :SQL Server 只能windows上运行没有丝毫开放性操作系统系统稳定对数据库十分重要Windows9X系列产品偏重于桌面应用NT server只适合小型企业而且windows平台靠性安全性和伸缩性非常有限象unix样久经考验尤其处理大数据库;
2.伸缩性并行性 :SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限;
3.安全性:没有获得任何安全证书。
4.SQL Server 多用户时性能欠佳
5.客户端支持及应用模式: 客户端支持及应用模式。只支持C/S模式,SQL Server C/S结构只支持windows客户用ADO、DAO、OLEDB、ODBC连接;
6.使用风险:SQL server 完全重写代码经历了长期测试断延迟许多功能需要时间来证明并十分兼容;
小缺点:
1.安装的时候感觉需要的空间好大,不适合微应用级别的开发
2.时间比较不是直接比较的,需要通过转换进行比较,在大数据量下造成大量的性能损失
性能:
SqlServer性能检测和优化工具使用详细(参见:https://www.cnblogs.com/knowledgesea/p/3683505.html)
SQL SERVER 2000压力测试(参见:https://www.newasp.net/tech/40470.html)
SQL Server 2012 简单压力测试(参见:https://blog.csdn.net/weixin_42401291/article/details/83447967)
 

 

3.Oracle数据库

oracle数据库也是相对比较普及的数据库
简介:balllllllllllllllllllllllllllllllllllllll
优点:
开放性:Oracle 能所有主流平台上运行(包括 windows)完全支持所有工业标准采用完全开放策略使客户选择适合解决方案对开发商全力支持;
可伸缩性,并行性:Oracle 并行服务器通过使组结点共享同簇工作来扩展windownt能力提供高用性和高伸缩性簇解决方案windowsNT能满足需要用户把数据库移UNIXOracle并行服务器对各种UNIX平台集群机制都有着相当高集成度;
安全性:获得最高认证级别的ISO标准认证。 
性能:Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录;
客户端支持及应用模式:Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接
使用风险:Oracle 长时间开发经验完全向下兼容得广泛应用地风险低
缺点:
对硬件的要求很高;
价格比较昂贵;
管理维护麻烦一些;
操作比较复杂,需要技术含量较高;
性能:






 

你可能感兴趣的:(理论,数据库,分析)