热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
author-avatar
文竹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有