搜尋
首頁資料庫mysql教程选购新标准:根据数据库选服务器

数据库实际上是每一个电子交易、金融和企业资源规划系统的基础,随着数据库技术在商业应用中的不断发展,现在的数据库应用规模已经越来越大型化,具体体现在两个方面:一方面是数据记录的数量级开始跃升到十万、百万级别,这直接造成数据库体积的快速膨胀,

 

数据库实际上是每一个电子交易、金融和企业资源规划系统的基础,随着数据库技术在商业应用中的不断发展,现在的数据库应用规模已经越来越大型化,具体体现在两个方面:一方面是数据记录的数量级开始跃升到十万、百万级别,这直接造成数据库体积的快速膨胀,例如一个人气论坛,日发贴量在1000左右,若运营一年,其数据记录就达到近40万条,而数据库占用空间将增加上百MB,如此庞大的一个数据库,在进行查询时对硬件系统要求是相当高的;另外,随着运营时间的增加,大部分数据库用户的访问量也会上升,例如一个WEB站点,日访问量假如是5000 IP,而假设每个IP点击动态页面4次,每个动态页面查询数据库5次,那么每日数据库将需要响应10万次查询。

因此,对那些以数据库作为主要支撑的应用来说(例如ERP系统、论坛系统),在具备一定的规模之后,对服务器硬件设备的要求将非常苛刻,而一旦服务器设备无法承受数据库的工作压力,将直接造成系统和各种业务的瘫痪,其损失将是无法估量的。

所以,我们今天就来探讨一下数据库应用和服务器之间的关系。

我们先来看一个很有意思的表格,它可以告诉你什么样的应用选择什么类型的数据库软件:

商业应用类型 服务器性能描述
数据库类型
大型数据库

(ERP,OLAP,data mart)
服务器仅用于运行数据库,或仅运行单一的应用。数据库的容量在10OGB以上,需要有较高的CPU处理能力,大容量内存为数据缓存服务,并需要很好的IO性能,使用这类应用时,通常需要有较高的CPU主频
中型数据库

(ERP,OLTP,etc)
服务器仅用于运行数据库,或仅运行单一的应用。数据库的容量在100GB以下,需要有较高的CPU处理能力,大容量内存为数据缓存服务,并需要很好的IO性能,使用这类应用时,通常需要有较高的CPU主频。
数据仓库

OLAP/Data mining
大型商业数据存储,编目、索引、数据分析等。例如:OLAP(联机事务处 理),高速商业计算,需要有良好的IO性能。
基本应用与web服务
电子商务E

commerce
功能与典型的应用服务器相同,性能视商业应用和用户数量而定,可能会 需要一定的数据安全传输与存储,或作为存储数据的主机。需要一定的CPU 和内存处理能力,通常,带有四路Pentium Ill Xeon处理器以及大容量数据存储的服务器可以基本满足要求。(可以满足每秒几千条请求).
文件及打印服务器 仅用来将数据从一处传递到另一处,对CPU的处理能力要求较低。
常规服务器域/代理/防火墙服务器 为了能够使域服务器和防火墙服务器有快速的响应能力,因此它们需要具 备较高的CPU处理能力,代理服务器需要有较大的内存用来存储和作为高 速缓存存储Web地址,代理服务器还需要有较大的存贮容量。建议选择机 柜式服务器可以节省占地空间
互联网服务应用

Linux/Windows NT/Novell
当互联网服务商针对专用的服务器比如邮件服务器、浏览服务器需要扩充 时,服务器应当具有价格低廉、小巧、高性能、通常一个或两个CPU基本 可以满足要求,而四路处理器的服务器则有些浪费。建议选择机柜式服务 器以节省占地空间。
通讯服务器

Messaging/E-mail
快速的IO是这类应用的关键,磁盘的IO(编目、存储信息)是主要瓶颈。 许多用户为了保证所存储的信息的可用性,采用 RAID 5阵列方式,但在 一定程度上会影响IO的性能,通常1个或2个CPU基本可以满足用户的 需求。这种服务器用户对于实时响应要求不高,用户所占用资源一般不超 过10%,所以最需要考虑的是数据信息的备份,以及如何在2~6小时能 将信息恢复正常。建议选择机柜式服务器以节省占地空间。
浏览服务器(动态) 通过存储在服务器中的网页可以构建网络空间,例如使用微软公司的技术 ASP。与静态网页相比,这种应用需要更高的CPU处理能力,建议选择机 柜式服务器以节省占地空间。高速的网络通讯能力也是必不可少的。
浏览服务器(静态) 静态网页通常是指有文本和图片共同组合存储的服务器中。通常变化不 大。使用两个CPU和 100MB/S的网卡可以非常轻松的满足极高的点击 率。当使用双路处理器的服务器时,可以完全满足每秒钟千次的点击。IGB 内存作为网页的高速缓存。也可以使用四路处理器并额外添加内存与网 卡。
应用服务器
应用服务器

(client/server,ERP)
任何一种客户机/服务器的网络系统比如 ERP,最典型的商业应用,客户 机在一端,而数据库服务器在另一端,它们通过网络系统通讯。系统具有 良好的扩展和调整能力,可以将不同应用安装到不同的服务器上,也可以 将在每个服务器上安装多个应用。ERP系统需要两个或更多的CPU以及 512MB以上的内存。具体数量视用户数量而定。
工作流服务器

Collaboration/Groopare
使用类似于 Lotus Notes, groupware, calendaring等等。对网络服务器的CPU和内存处理能力要求属于中等。不需要额外投资大量的硬件资 源。
多应用服务器 多种应用程序以及它们使用的数据库共同运行在同一台服务器上,可以替 代多台小型的服务器。建议使用多个CPU可以获得较好的使用效果。通常 使用多个速度稍低的CPU的效果好于使用一个高速的CPU。
小型/专用服务器 特定的应用系统,医疗、零售、经销商等特定的应用。使用带有两个CPU 的级别的服务器可以支持数百的用户终端。通常塔式服务器是首 选。
终端服务器/基于运算服务 在多用户环境下,所有的硬件及软件资源都可以通过终端服务器共享给网络上的所有的用户,应用程序运行在服务器上,用户可以通过用户终 端使用所有的应用程序。使用多处理器将可以有效改善系统的性能。内存的配置非常关键,通常需要有16MB内存分配给 Windows NT,有 32MB内 存分配给终端服务器,每个用户需要有4-8MB内存。软件的使用与硬件的资源有很大的关系,通常使用带有两路处理器和IGB内存的服务器可以 支持大约50个用户,带有四路处理器和4GB内存的服务器可以支持100个用户,带有8路处理器及4GB内存的服务器可以支持大约200个用户。

当然,就国内的实际情况来看,使用最广泛的无疑还是这四种数据库:Oracle,MS SQL Server,My SQL和Access,下面我们就逐个分析一下这几种数据库对于服务器的要求。

甲骨文 Oracle

提到ORACLE,不得不详细介绍一下,因为它是目前业内公认最牛X的数据库系统,广泛用于大型商业、高等院校和科学研究领域:

ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器 (CLIENT/SERVER)体系结构的数据库之一。ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE 的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。 ORACLE 数据库提供了基于角色(ROLE)分工的安全保密管理,在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。ORACLE 数据库提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端PC 平台的应用程序,并具有良好的移植性。另外,ORACLE 数据库提供了新的分布式数据库能力,可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。

下面分析一下ORACLE 数据库:根据实际使用测试的经验,不少程序员都已经确认ORACLE 数据库在运行时效率是非常高的,大家发现这其实是因为它非常巧妙而合理的使用了系统内存,当然,它同时也是大量的使用了系统内存,至于其目的究竟是为了缓解硬盘缓存压力还是基于其他因素,我们就不深入探讨,我们可以明确的一点就是,ORACLE 数据库要有足够容量的系统内存进行支持才能较好的发挥其性能优势,尤其是那些数据库写入工作(例如 UPDATE、INSERT/ADDNEW等动作)比较频繁的应用,使用大容量内存非常有必要。

因此,如果您是使用ORACLE 数据库,可以在系统内存容量方面进行提升,现在的Nocona、Opteron处理器已经突破传统4GB内存直接寻址的限制了,但服务器主板的设计对于大容量内存系统的限制还是存在,大家还得注意这个问题;在内存控制方面表现比较出色的是IBM和HP,这两家公司的内存自主研发技术比较多也比较强大,尤其是IBM,不仅可以有效实现内存的大容量扩展,还能提供多种纠错和备份保护,对于企业级应用是非常适合的。另外,数据库对内存系统要求高并不是说一味提升内存容量就OK了,整体性能的提高无论任何时候都是真理;对于一些中高端的应用,我们推荐大家使用8路或更8路以上的服务器,特别是AMD的 Opteron 8XX系列,性能确实非常强悍,而且其独到的HyperTransport技术可以为多路系统提供足够的总线,加上内存控制器内嵌于核心之上,使得它的前端系统性能要比Intel的MP更为抢眼,如果是Unix系统,还可以使用IBM的Power 5系统,Power 5处理器是IBM自家的RISC(精简指令集)架构处理器,采用双核设计,性能也非常强悍。至于磁盘系统,基本上是取决于使用什么样的RAID控制卡和使用什么RAID工作模式,关于这方面的问题大家可以参看我们的磁盘阵列技术文章,相信会找到一个满意的答案,这里就不进行详述了。

MS SQL Server

这是微软的商业数据库系统,有多个版本,最强大的是Enterprise Edition,需要在Windows 2000 Advanced Server或Windows 2003 Server Enterprise Edition上面才能安装。微软之前的数据库一直被指性能不佳,不登大雅之堂,于是比尔高薪挖来很多牛人开发出这套MicroSoft SQL Server,目前常用的版本还是MS SQL Server 2000,尽管新版本已经问世。这套数据库系统性能表现也是可圈可点,彻底改变了微软没有高性能大型数据库的局面,由于有自家操作系统做后盾,加上 Visual Studio开发软件的强力支持,该数据库系统在国内应用也非常普及,各种中小型商业和院校应用都看得到它的身影,大部分以IIS+ASP/.NET模式运行的中等以上规模WEB站点都是使用这套数据库。

MS SQL Server对服务器设备的要求并不像ORACLE那么高,但是根据大多数程序员使用的感受,要提高MS SQL Server的性能在处理器和磁盘系统上做文章效果比较明显。鉴于MS SQL Server的主流应用环境一般都是双路XEON(这东西还不能移植到Unix系统,而且性能不如ORACLE,因此一般不用于高端领域),因此我们针对这类数据库提出的建议是:使用高频的Xeon处理器,建议使用双路,另外,Opteron表现确实非常优秀,也可以适当考虑;磁盘系统采用RAID 0或者RAID 1用户可以自己决定,如果有配阵列卡,组个RAID 5也可以;特别说明一下,Windows 2003 Server Enterprise Edition执行效率确实比Windows 2000 Advanced Server高,对于使用MS SQL Server的用户来说可以考虑使用2003作为操作系统。

My SQL

这是一个开放而且免费的数据库。虽然功能不是非常强大,性能也只能算是一般,但在各种中小型应用中还是非常普及的,毕竟它比起针对小型办公应用而设计的ACCESS来说还是非常有优势的--不仅免费,而且性能、安全性比ACCESS好很多。My SQL可以在Windows环境下使用,不过其最经典的组合是Linux+Apache+PHP/JSP+MySQL。现在以这种组合出现的小型网站非常多,这类网站对服务器配置要求非常低,当然,由于数据库本身的限制,MySQL也不大适合大访问量的商业应用。

在我们的测试中经常使用 MYSQL作为数据库平台,一般是使用一个拥有5万注册用户的论坛数据库作为测试对象,测试结果也显示出一个问题,磁盘性能对MYSQL数据库查询的效率影响特别明显,要远远高出CPU、内存等配件的影响,一台配置一般的服务器只要拥有高性能的磁盘系统,一样可以获得很好的成绩;当然,如果在数据库查询中包含很多复杂的查询比较条件,那么CPU主频的作用也是非常明显的。这里,我们推荐这类数据库的用户使用高性价比的SATA阵列,用主板自带的软RAID 就行,性能同样可以令人满意,而且成本非常低,当然,适当提升CPU的主频也是有价值的。

Access

Access 是微软面向办公用户推出的一种数据库系统,在Office光盘中带有它的管理软件。既然是面向办公用户推出的一种数据库系统,那么其性能自然是比较差的,不过这种“业余”级别的数据库无需安装,而且使用管理非常简单,因此深受初级程序员的欢迎,绝大部分的ASP小型站点几乎都是使用这种数据库;当然,其性能非常有限,不大适合于安全性要求较高和数据量较大的环境。

Access数据库非常带有微软软件的特点--简单易用、占资源、效率低,因此要提升这种数据库的性能,从硬件方面只能是全面升级,如果要大幅度提升性能,建议升级服务器配置的同时将数据库系统升级到MS SQL Server。Access数据库和P4服务器是绝配,当然,如果使用P4服务器,那么升级的空间就不会太大了,所以还是以经济实用为主导。

总结 :

数据库其实是非常博大精深的,很难用短短一篇文章把数据库和服务器之间错综复杂的关系说清楚,只是希望以上肤浅的经验和看法,能够为初级用户提供一些参考。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
解釋InnoDB緩衝池及其對性能的重要性。解釋InnoDB緩衝池及其對性能的重要性。Apr 19, 2025 am 12:24 AM

InnoDBBufferPool通過緩存數據和索引頁來減少磁盤I/O,提升數據庫性能。其工作原理包括:1.數據讀取:從BufferPool中讀取數據;2.數據寫入:修改數據後寫入BufferPool並定期刷新到磁盤;3.緩存管理:使用LRU算法管理緩存頁;4.預讀機制:提前加載相鄰數據頁。通過調整BufferPool大小和使用多個實例,可以優化數據庫性能。

MySQL與其他編程語言:一種比較MySQL與其他編程語言:一種比較Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

學習MySQL:新用戶的分步指南學習MySQL:新用戶的分步指南Apr 19, 2025 am 12:19 AM

MySQL值得學習,因為它是強大的開源數據庫管理系統,適用於數據存儲、管理和分析。 1)MySQL是關係型數據庫,使用SQL操作數據,適合結構化數據管理。 2)SQL語言是與MySQL交互的關鍵,支持CRUD操作。 3)MySQL的工作原理包括客戶端/服務器架構、存儲引擎和查詢優化器。 4)基本用法包括創建數據庫和表,高級用法涉及使用JOIN連接表。 5)常見錯誤包括語法錯誤和權限問題,調試技巧包括檢查語法和使用EXPLAIN命令。 6)性能優化涉及使用索引、優化SQL語句和定期維護數據庫。

MySQL:初學者的基本技能MySQL:初學者的基本技能Apr 18, 2025 am 12:24 AM

MySQL適合初學者學習數據庫技能。 1.安裝MySQL服務器和客戶端工具。 2.理解基本SQL查詢,如SELECT。 3.掌握數據操作:創建表、插入、更新、刪除數據。 4.學習高級技巧:子查詢和窗口函數。 5.調試和優化:檢查語法、使用索引、避免SELECT*,並使用LIMIT。

MySQL:結構化數據和關係數據庫MySQL:結構化數據和關係數據庫Apr 18, 2025 am 12:22 AM

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL:解釋的關鍵功能和功能MySQL:解釋的關鍵功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一個開源的關係型數據庫管理系統,廣泛應用於Web開發。它的關鍵特性包括:1.支持多種存儲引擎,如InnoDB和MyISAM,適用於不同場景;2.提供主從復制功能,利於負載均衡和數據備份;3.通過查詢優化和索引使用提高查詢效率。

SQL的目的:與MySQL數據庫進行交互SQL的目的:與MySQL數據庫進行交互Apr 18, 2025 am 12:12 AM

SQL用於與MySQL數據庫交互,實現數據的增、刪、改、查及數據庫設計。 1)SQL通過SELECT、INSERT、UPDATE、DELETE語句進行數據操作;2)使用CREATE、ALTER、DROP語句進行數據庫設計和管理;3)複雜查詢和數據分析通過SQL實現,提升業務決策效率。

初學者的MySQL:開始數據庫管理初學者的MySQL:開始數據庫管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括創建數據庫、表格,及使用SQL進行數據的CRUD操作。 1.創建數據庫:CREATEDATABASEmy_first_db;2.創建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入數據:INSERTINTObooks(title,author,published_year)VA

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境