MySQL数据库+至强7500=高效的并行性能

跟版网(www.genban.org)提供性能,高效,数据库,MySQL,内存,跟版网精品网站模板,跟版网模板,网站模板,等网页设计素材资源,提供相关网页设计资源的教程和免费下载。跟版网,专业织梦网页设计模板资源站。。

在这里我们还是需要从至强7500的硬件性能开始讲起,这也方便DBA们更好的发挥MySQL高效并行方面的优势。bitscn数据库频道向您推荐《MySQL数据库入门与精通教程》专题以便于更进一步了解MySQL。

英特尔与合作伙伴携手发布至强7500 
英特尔与合作伙伴携手发布至强7500

MySQL是一个快速、多线程、多用户的SQL数据库服务器,其出现虽然只有短短的数年时间,但凭借着开放源代码的东风,它从众多的数据库中脱颖而出,成为众多DBA的首选。业内开发人员圈子里也把LAMP体系(Linux+Apache+MySQL+PHP/Perl)作为最标准的应用程序开发平台。下面我们来看看MySQL数据库的三个主要特点,以及其对服务器的具体需求。

1、 MySQL数据库的三大特性及需求方向

1998年第一代MySQL关系型数据库诞生之初,就已经在数据库核心层面提供给了对多线程计算机之的完全支持,并且提供了面向C、C++、 Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。

正是基于以上原因,在很多DBA的心目中,只要通过升级服务器CPU和内存,扩容数据库集群就可以提高MySQL数据库性能。而因为MySQL的核心程序采用的是轻量级进程(LWP,也就是说大部分资源和其他进程共用,是一种实现多任务并行的方法),所以其对系统逻辑地址空间和资源的客观理性要求就非常高(这一点后文会解释)。

由于MySQL提供了多种编程接口,因而在前端应用平台上具有其他数据库无法比拟的优势。与x86服务器日渐风靡相对照,基于C语言、C++语言、甚至是JAVA语言的数据库调用也日益流行。而MySQL被广大DBA用户青睐的一个重要原因就是其开放式架构在x86平台上的优势——例如ODBC for Windows使得MySQL支持所有的ODBC 2.5函数,从而让微软Access直接链接MySQL数据库,其应用得到极大的扩展。

此外,由于MySQL拥有一个非常快速而且稳定的内存管理系统,因此在大内存环境中性能表现优秀,在不少应用案例中,有DBA甚至直接将扩容内存作为提高系统可靠性和稳定性的手段——事实上,MySql的稳定性足以应付一个超大规模的数据库(后文我们也会有所介绍)。

综上所述,MySQL数据库三大特性分别是:核心程序支持多核心、多线程的并行计算;x86平台的多应用环境;快速稳定的内存管理系统。相应的,DBA在选择MySQL数据库服务器的时候需要考虑服务器内CPU的并行计算性能(或是多路集群的计算性能),复杂x86环境的支持性(为虚拟化数据库做考虑)和强大的内存拓展性。

2、 为MySQL量身打造最合适数据库服务器

从前文的分析来看,MySQL数据库在性能需求层面主要对处理器提出了要求:并行计算性能强(或多路集群计算性能强),x86平台全兼容,优秀的系统稳定性及内存拓展。随着3月31日英特尔至强7500处理器发布,x86平台的计算性能和可靠性被推至了巅峰,MySQL数据库也迎来了为自己量身打造的处理器。

至强7500拥有8核16线程,集成了内存控制器,并拥有4条QPI直连总线,使其每个处理器最多支持16条四通道DDR3 1333Mhz内存,这使得一个四路服务器最高支持256GB内存(4G*16条*4路),达到了x86平台有史以来的巅峰——与上一代至强7400处理器(6核6线程)相比,数据库性能提升了2.5倍。此外,基于至强7500的服务器在拓展至8路的情况下不需要第三方节点控制器的支持,并且最高可以扩展到256路服务器系统(需要第三方支持)——充分满足DBA对大规模数据库集群的计算需求。

这主要得益于至强7500所拥有的4条QPI总线,以及Nehalem-EX架构强大的多路互联技术。此外,对于前文所提的MySQL轻量级线程对系统共享资源的依赖,这里要简单介绍一下其工作原理:在数据库计算中,会出现几个计算线程共用一个数据的情况。因此MySQL将这几个计算分割在多个线程中进行,却并不分割所调用的数据,让他们统一访问这一个数据,以达到最小化存取的目的,进而将有限的计算资源尽可能多的利用到计算中,而不是数据读写中。这种设计的本意是好的,但是早期的x86平台受制于内存控制器在北桥,以及处理器自身缓存不够大(处理器常用的数据通常先存在缓存里,之后才访问内存),因此这种共享数据的访问反而会造成延迟——每个线程都去读一次内存获得要计算的数据,几乎等同于计算线程携带着相同数据所消耗的负载(牵扯较深,请自行理解)。bitscn编者注:这就相当于中国的春运,大家都带着很多行李挤火车,铁路的负载消耗当然就很大。

总结为一句话,以往DBA们一直都存有质疑,认为MySQL的轻量级线程由于共享数据,实现了较高的并行效率(但只体现在算法层面),因为x86平台存取数据——尤其是访问内存时的低效,使得MySQL的优势很难体现。至强7500凭借多达24MB的三级缓存以及集成在处理器内部的内存控制器,将MySQL数据库频繁调用相同系统资源的操作大大降低,可以说充分发挥出了MySQL数据库高效的并行性能。

对于内存扩展性方面,至强7500历史性的将每颗处理器仅支持8条内存槽拓展到支持16条内存。这给了用户极大的灵活性——有的用户数据库规模大,运算量却并不大,因而仅需要内存多,而并不需要插满四个处理器。Dell前两天新推出的采用至强7500系列处理器的服务器中,创造性的采用Flex Memory Bridge技术,使得一个四路服务器在仅插两个处理器的情况下,每个处理器可以使用另外没插处理器的8条DIMM内存插槽(每个处理器标配了8个DIMM内存插槽),也就是两个处理器可以用全服务器内的32条内存插槽(请自行理解)。

另一方面,英特尔在至强7500中加入了22条RAS特性,并首次在至强平台上实现了IA64上才有的MCA恢复功能,提供更强的可靠性。因而无论是在性能、可扩展性和可靠性上,都已经逼近RISC,甚至在某些指标上有所超越。而至强7500的x86生态环境更加开放,与MySQL相应的Linux、Unix、Windows环境融合更紧密,成本方面也更加低廉。

基于以上分析,可以看出至强7500无论是在计算性能上、内存扩展性方面、可靠性方面以及丰富的应用环境充分发挥了MySQL数据库的三大特色。毋庸置疑,至强7500将x86平台带到了一个新的高度,而DBA们也得益于x86平台与MySQL数据库开放式的强强联手,可以将企业MySQL数据库的应用推向新的高度。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

数据库查询哪个对像里面包含什么字段语句写法: select * from sysobjects o, syscomments s where o.id = s.id and text like %text% and o.xtype = P text 换成需要查的字段 数据库查询哪个对像里面包含表: select o.name from sys.all_sql_modules s,sys
一、 创建用户: 命令:CREATE USER username@host IDENTIFIED BY password; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该
在mysql中可以用group by对查询出的数据分组 select id,service,name FROM service GROUP BY name,service 如果要查看每组数据的总数,可以 select count(*) FROM service GROUP BY name,service 当要查询group by后的总数,可以这样 select count(*) from(s
mysql count group by统计条数方法 mysql 分组之后如何统计记录条数? gourp by 之后的 count,把group by查询结果当成一个表再count一次 select count(*) as count from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a; 实战例子: select count(*)
1.首先停止MySQL服务:service mysqld stop 2.加参数启动mysql:/usr/bin/mysqld_safe --skip-grant-tables 然后就可以无任何限制的访问mysql了 3.root用户登陆系统:mysql -u root -p mysql 4.切换数据库:use mysql 5.显示所有的表:show tables; 这里就可
摘要: SQL的WHERE子句中包含多个AND和OR 示例: SQL解析器在处理操作时会优先处理and操作: 假如有表product字段如下:id、product_id、product_price、product_name,现在要查找产品号为100或者101,并且价格大于200的商品,程序员可能会这样写: select * fr