数据库服务器对十亿条以上数据进行处理时,采用mysql的性能怎样?PostgreSQL呢?SQL sever呢?
如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是
免费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据
库呢?
在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高昂的。你希望一开始就选择正确。两个流行的开源数据库MySQL与PostgreSQL常常成为最后要选择的产品。对这两个开源数据库的高层次概览将会有助于你选择最适合自己需要的。
MySQL
MySQL
相对来说比较年轻,首度出现在1994年。它声称自己是最流行的开源数据库。MySQL就是LAMP(用于Web开发的软件包,包括
Linux、Apache及Perl/PHP/Python)中的M。构建在LAMP栈之上的大多数应用都会使用MySQL,包括那些知名的应用,如
WordPress、Drupal、Zend及phpBB等。
一开始,MySQL的设计目标是成为一个快速的Web服务器后端,使用快速的
索引序列访问方法(ISAM),不支持ACID。经过早期快速的发展之
后,MySQL开始支持更多的存储引擎,并通过InnoDB引擎实现了ACID。MySQL还支持其他存储引擎,提供了临时表的功能(使用MEMORY存
储引擎),通过MyISAM引擎实现了高速读的数据库,此外还有其他的核心存储引擎与第三方引擎。
MySQL的文档非常丰富,有很多质量不错的免费参考手册、图书与在线文档,还有来自于Oracle和第三方厂商的培训与支持。
MySQL
近几年经历了所有权的变更和一些颇具戏剧性的事件。它最初是由MySQL
AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版
本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一
些则是收费的。其核心代码基于GPL许可,对于那些不想使用GPL许可的开发者与厂商来说还有商业许可可供使用。
现在,基于最初的
MySQL代码还有更多的数据库可供选择,因为几个核心的MySQL开发者已经发布了MySQL分支。最初的MySQL创建者之一 Michael
"Monty"
Widenius貌似后悔将MySQL卖给了Sun公司,于是又开发了他自己的MySQL分支MariaDB,它是免费的,基于GPL许可。知名的
MySQL开发者Brian Aker所创建的分支Drizzle对其进行了大量的改写,特别针对多CPU、云、网络应用与高并发进行了优化。
PostgreSQL
PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。它拥有很长的历史,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。
PostgreSQL
是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本,而不像MySQL那样提供了
多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声
明即可。
可靠性是PostgreSQL的最高优先级。它以坚如磐石的品质和良好的工程化而闻名,支持高事务、任务关键型应用。
PostgreSQL的文档非
常精良,提供了大量免费的在线手册,还针对旧版本提供了归档的参考手册。PostgreSQL的社区支持是非常棒的,还有来自于独立厂商的商业支持。
数
据一致性与完整性也是PostgreSQL的高优先级特性。PostgreSQL是完全支持ACID特性的,它对于数据库访问提供了强大的安全性
保证,充分利用了企业安全工具,如Kerberos与OpenSSL等。你可以定义自己的检查,根据自己的业务规则确保数据质量。在众多的管理特性
中,point-in-time
recovery(PITR)是非常棒的特性,这是个灵活的高可用特性,提供了诸如针对失败恢复创建热备份以及快照与恢复的能力。但这并不是
PostgreSQL的全部,项目还提供了几个方法来管理PostgreSQL以实现高可用、负载均衡与复制等,这样你就可以使用适合自己特定需求的功能
了。
平台
MySQL与PostgreSQL都出现在一些高流量的Web站点上:
MySQL:Slashdot、Twitter、Facebook与Wikipedia
PostgreSQL:Yahoo使用了一个修改的PostgreSQL数据库来处理每天数以亿计的事件,还有Reddit和Disqus
MySQL
与PostgreSQL都能运行在多个操作系统上,如Linux、Unix、Mac OS
X与Windows。他们都是开源、免费的,因此测试他们时的唯一代价就是你的时间与硬件。他们都很灵活且具有可伸缩性,可用在小型系统和大型分布式系统
上。MySQL在一个领域上要比PostgreSQL更进一步,那就是它的触角延伸到了嵌入式领域,这是通过libmysqld实现的。
PostgreSQL不支持嵌入式应用,依然坚守在传统的客户端/服务器架构上。
MySQL通常被认为是针对网站与应用的快速数据库后端,
能够进行快速的读取和大量的查询操作,不过在复杂特性与数据完整性检查方面不太尽如人意。
PostgreSQL是针对事务型企业应用的严肃、功能完善的数据库,支持强ACID特性和很多数据完整性检查。他们二者都在某些任务上具有很快的速
度,MySQL不同存储引擎的行为有较大差别。MyISAM引擎是最快的,因为它只执行很少的数据完整性检查,适合于后端读操作较多的站点,不过对于包含
敏感数据的读/写数据库来说就是个灾难了,因为MyISAM表最终可能会损坏。MySQL提供了修复MySQL表的工具,不过对于敏感数据来说,支持
ACID特性的InnoDB则是个更好的选择。
与之相反,PostgreSQL则是个只有单一存储引擎的完全集成的数据库。你可以通过调整postgresql.conf文件的参数来改进性能,也可以调整查询与事务。PostgreSQL文档对于性能调优提供了非常详尽的介绍。
MySQL与PostgreSQL都是高可配置的,并且可以针对不同的任务进行相应的优化。他们都支持通过扩展来添加额外的功能。
一个常见的误解就是MySQL要比PostgreSQL更容易学习。关系数据库系统都是非常复杂的,这两个数据库的学习曲线其实是差不多的。
标准兼容性
PostgreSQL
旨在实现SQL兼容性(当前标准是ANSI-SQL:2008)。MySQL则兼容大部分SQL,不过还有自己的扩展,可以支
持NoSQL特性,这在参考手册中都有介绍。每种方式都有优缺点。兼容标准会让数据库管理员、数据库开发者与应用开发者更舒服一些,因为这意味着他们只需
学习一套标准、一套特性和命令即可。这会节省时间,提升效率,也不会被锁定在特定的厂商上。
支持使用非标准的自定义功能的人们认为这样可
以快速采用新的特性,而不必等待标准进程完成。ANSI/ISO标准在不断演化,因此标准兼容性也是个
变化的目标:知名的关系型数据库Microsoft SQL Server、Oracle与IBM DB2也只是部分兼容于标准。
结论
虽
然有不同的历史、引擎与工具,不过并没有明确的参考能够表明这两个数据库哪一个能够适用于所有情况。很多组织喜欢使用PostgreSQL,因为
它的可靠性好,在保护数据方面很擅长,而且是个社区项目,不会陷入厂商的牢笼之中。MySQL更加灵活,提供了更多选项来针对不同的任务进行裁剪。很多时
候,对于一个组织来说,对某个软件使用的熟练程度要比特性上的原因更重要。
RDS是阿里云提供的即开即用的关系型数据库服务,兼容了MySQL和SQL Server两种数据库引擎。在传统数据库的基础上,阿里云RDS提供了强大丰富的功能从而保证了高可用性、高安全性以及高性能。此外,RDS还提供了诸多便利功能提升了RDS的易用性。
★高可用:
采用主从热备的架构。主机down机或者出现故障后,备机秒级完成无缝切换,服务可用性承诺:99.95%
提供自动多重备份的机制。用户可以自行选择备份周期,也可以根据自身业务特点随时进行临时备份,数据可靠性承诺:99.9999%
数据回溯到任意时间点。用户可以选择7天内的任意时间点创建一个临时实例,临时实例生成后验证数据无误,即可将数据迁移到RDS实例,从而完成数据回溯操作。
★高安全
提供白名单访问策略。可自行设置允许访问的IP及IP段,有效防止黑客扫描端口进行服务器攻击。
提供阈值报警的功能。支持实例锁定报警、连接数报警、IOPS报警、磁盘空间使用报警、CPU报警等。
提供SQL注入告警。将对发往RDS的疑似SQL注入的语句进行记录并展示,供用户进行程序调整,杜绝SQL注入的发生。
SQL审计。记录所有发往RDS的SQL语句,系统将记录SQL语句相关的连接IP、访问数据库的名称、执行语句的账号、执行时间、返回记录数等信息。供用户对RDS安全性进行排查。
控制台操作日志。记录所有在控制台上进行的修改类操作,便于管理员查看并管理RDS。
通常认为oracle是最大型的,其实这个大型,主要是oracle对分布式架构的支持比较直接和友好。因为oracle在设计的时候是直接假设数据规模是大型的,也就是说其针对的市场是这部分市场。
mysql数据库比较灵活,设计的时候功能没有定死,其应用存在弹性。
性能方面,oracle的索引和引擎,性能不比mysql高,甚至比mysql低。因为oracle的设计原则是事务优先,性能通过加大硬件投入也就是扩大分布式架构的规模解决。mysql的设计原则是性能优先,事务其次。
oracle的大型假设还包括经济方面,那就是它针对的市场是高端方案这部分市场。经济方面也是“高端”的,也就是不能节约投资,特别是硬件设备。比如说银行,都采用oracle。总而言之,oracle的设计目标是高档产品,用于高档项目。
就像楼上说的,淘宝、百度等等大部分都已经倾向于PHP+MYSQL了,原因就是成本。特别是有了规模之后,非开源数据库的授权价格是很大的。mysql相比oracle的缺点是对技术有比较高的要求,个别功能不够到位。
那么你的这个问题。收费数据库像oracle,功能比较到位,易用性比较高。免费数据库像mysql单纯性能的话高那么一点,因为开源的代码优化的更好。
但是,各种数据库的索引和引擎技术,也就是算法,不可能有很大差距,数学是公开的。所以不是哪种数据库的问题,而是采用多少台计算机组成分布式架构的问题。
每天一千万条的数据操作量,除非数据是很小很简单的数据,否则这个量不能算小型的访问量。如果你的这个应用,可以通过缓存技术解决大部分数据库操作的话,不用分布式架构是可以的。
能换就换了oracle 吧,mysql小心崩了,里面的数据就找不回来啦!sql sever 的话,
千万条数据同时查询的话,相对有点慢了。怕费用高的话,可以用sql sever 的,但是也要注意防止数据丢失。(因为处理不过来的话,有可能卡机之类的,在这情况下出问题,经常丢失数据)
如何选择看你自己啦。
怎么会有这么多数据量。。有这么大数据量的公司应该不差那点钱来 花钱买个收费的数据库吧
淘宝也在使用MYSQL,百度等等大部分都已经倾向于PHP+MYSQL了,MYSQL配置好的话,承受量不是很大问题,SQL sever很贵,是中型数据库,大型数据最常见的就是oracle,这种就算淘宝这种大公司也不好烧起
那你可以考虑用oracle呀
配置一台PC做数据库服务器,预算-4000+
根据你的情况,给你推荐一款数据库服务器配置——你可以看看国产品牌正睿的这款服务器,标配一颗最新nehalem架构的至强四核处理器,2G DDR3 1333MHz内存,英特尔3420服务器芯片组主板,SATA2 160G硬盘,双千兆网卡,性能非常不错,做数据库服务器绰绰有余了。产品型号:I145738S-E 产品类型:单路四核塔...
mysql数据库最大连接数可以设置为多少
MySQL服务器的最大并发连接数是16384。MySQL作为一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言结构化查询语言(SQL)进行数据库管理。MySQL服务器的最大并发连接数受服务器配置,及网络环境等制约,实际服务器支持的并发连接数会小一些,主要决定因素有:服务器CPU及内存的配置...
,用SQL Server2000做数据库,现在表里有上亿条纪录,怎么样尽可能的提高...
Moebius集群由一组数据库服务器组成,每个服务器上安装相同的数据库,集群支持无共享磁盘架构,各机器可以不连接一个共享设备,数据可以存储在每个机器自己的存储介质中。依据数据是否分区,Moebius集群架构分为标准架构和高级架构:标准架构:每个节点中具有完全相同的数据,每个节点都拥有数据全集。高级架构:每...
在三层c\/s应用架构中,数据库服务器完成什么任务,应用服务器完成什么任务...
数据库服务器:完整的是数据持久化的任务,即对数据的增、删、查、改。应用服务器:提供业务服务给界面层调用,并响应界面层的服务请求。通过数 据库服务器提供的服务保存数据的更改。
服务器是干什么的?和数据库有什么区别
区别 1、从性质上看:数据库是可以运行在服务器上的软件。服务器是硬件,服务器安上了数据库应用程序后可以变成数据库服务器。2、从功能上看:数据库是可以从数据库是按照数据结构来组织、存储和管理数据的仓库而服务器是用于数据计算和处理的硬件。用来存放客户请求并给出回应的硬件。
支持大型数据库的服务器需要什么配置
选择数据库服务器的原则:1、高性能原则:保证所选购的服务器,不仅能够满足运营系统的运行和业务处理的需要,而且能够满足一定时期业务量的增长。一般可以根据经验公式计算出所需的服务器TpmC值(Tpmc是衡量计算机系统的事务处理能力的程序)。后比较各服务器厂商和TPC组织公布的TpmC值,选择相应的机型。同时,...
数据库服务器对硬件有哪些要求?
我们从五个方面入手,帮助您系统的了解数据库服务器对服务器硬件有哪些要求.选择数据库服务器的五个原则:1)高性能原则保证所选购的服务器,不仅能够满足运营系统的运行和业务处理的需要,而且能够满足一定时期业务量的增长.一般可以根据经验公式计算出所需的服务器TpmC值(Tpmc是衡量计算机系统的事务处理能力的...
如何在服务器上创建数据库如何在服务器上创建数据库文件
1、打开企业管理器 在MSSQL2008(SQLServer2008及以上版本)中,使用可视化企业管理器创建数据库比较常见。打开企业管理器——登录数据库服务器;数据库右键——新建数据库。2、设置数据库参数 打开新建数据库主页,输入数据库名称即可,其他的选项以系统默认为准。3、新建表格 数据库必须要有数据表才能...
有一个系统,每天要向sql server服务器插入10几万条记录,在不考虑查询...
建分区表的话, 要看你有几个磁盘.如果只有一个磁盘的, 分区来分区去, 最后数据还是在 一个磁盘上面,如果你有多个磁盘的.那么可以根据那个 自增 ID , 设置一个 计算列 比如你有5个 磁盘, 那么 那个计算列 是 自增 ID % 5 那么 当 计算列的数值 = 1 , 数据被存储到 磁盘1上面...
一个数据库可以装在多台服务器吗
每个根目录下可以放置一个网站.这样就实现了一个虚拟主机放多个不同网站的目的.但各个根目录共享一个虚拟主机的连接数.资源非常有限.只能放几个小网站.除此以外.你也可以选择租用云主机.云主机其实可以理解成是一台虚拟服务器.它拥有与独立服务器一模一样的功能.有独立的操作系统和管理平台.用户可以...
闾乔洋参: 淘宝也在使用MYSQL,百度等等大部分都已经倾向于PHP+MYSQL了,MYSQL配置好的话,承受量不是很大问题,SQL sever很贵,是中型数据库,大型数据最常见的就是oracle,这种就算淘宝这种大公司也不好烧起
灌南县18888601041: 在SQLServer2008中进行对1000万条以上的数据按索引进行检索时,查询时间有多长??
闾乔洋参: 开8GB内存,表不超过40列,条件中使用到唯一索引或主键做查询条件,并且查询计划使用到索引,不使用sum,group by等函数.一般不超过5秒. 条件中如果不使用范围做,比较大于某日期,并且小于某日期.范围一条记录,两三秒肯定出来.
灌南县18888601041: SQLserver2005 和 mongodb的大数据量的处理 - ?
闾乔洋参: 你们老板也是没事忽悠你啊! 你上当了 现在不是四月!-------------------------------- MongoDB 是nosql 的一种存储数据库. 也就是说 所有业务都要转化.而且这种分布式并没有带来什么好处.况且即使是银行,数据量是你的万亿倍,也没听说用mongodb啊!------------------------- 这个问题其实很简单,将记录表 按时间分区 即可.你可以百度一下 sql2005 表分区 然后你将磁盘进行镜像分区 做 分布式存储 这不比你改存储方式强啊!学过高中数学 划分 分界点 应该很容易.
灌南县18888601041: sqlserver数据库中10W条以上的数据怎么在控件上实现分页?
闾乔洋参: 哇,这个如果用select top 7 * from news where newsID not in (select top %d newsID from news 来查的话我估计CPU会用100%,建议用VS中自代的分页功能,有服务资源管理器,点连接数据库,本机,测试成功后打开数据库,直接把表拖到网页中,就会出现几个多选框,点启动分页,和排序就可以了
灌南县18888601041: MySql 处理超大数据量 (分库) - ?
闾乔洋参: ------------------------------------------- 既然有多台服务器可用,那就使用MYSQL集群吧.在手册中称为“mysql簇”.查一下手册或者借助搜索引擎吧,我就不复制粘帖了.
灌南县18888601041: SQLserver2005 和 mongodb的大数据量的处理 - ?
闾乔洋参: 你们老板也是没事忽悠你啊! 你上当了 现在不是四月!MongoDB 是nosql 的一种存储数据库. 也就是说 所有业务都要转化.而且这种分布式并没有...
灌南县18888601041: 如何处理海量数据 - ?
闾乔洋参: 在实际的工作环境下,许多人会遇到海量数据这个复杂而艰巨的问题,它的主要难点有以下几个方面: 一、数据量过大,数据中什么情况都可能存在. 如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考...
灌南县18888601041: ,用SQL Server2000做数据库,现在表里有上亿条纪录,怎么样尽可能的提高查询速度(已加索引) - ?
闾乔洋参: 你可以看一下Moebius集群 Moebius集群由一组数据库服务器组成,每个服务器上安装相同的数据库,集群支持无共享磁盘架构,各机器可以不连接一个共享设备,数据可以存储在每个机器自己的存储介质中.依据数据是否分区,Moebius集群...
灌南县18888601041: 如果服务器传过来的数据量过大,怎么处理 - ?
闾乔洋参: 说白了就是服务器的承受能力. 第一,确认服务器硬件是否足够支持当前的流量. 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可...
灌南县18888601041: 如果有几百亿条数据,如何在hbase表中存放? - ?
闾乔洋参: 1、首先你有没有那么多台服务器的集群,如果只是几台,你要想够不够,你的hbase 有几百亿,那么你hdfs上的数据可能要有两个备份,你这几百亿条是如何生成的,肯定是mapreduce跑出来导入到hbase中把,那么原始数据你要不要留,如果...