出版時(shí)間:2010年1月 出版社:電子工業(yè)出版社 作者:Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D.Zawodny,Arjen Lent,Derek J.Ballin 頁(yè)數(shù):560 譯者:王小東,李軍,康建勛
Tag標(biāo)簽:無(wú)
前言
對(duì)于這本書(shū),我們?cè)陬^腦里有好幾個(gè)目標(biāo)。其中的大多數(shù)源于我們一直想要有一本在書(shū)架上尋找卻總是找不到的神話般完美的MySQL書(shū),其他幾個(gè)目標(biāo)來(lái)自于想把我們的經(jīng)驗(yàn)分享給那些把MySQL用在他們環(huán)境中的用戶。我們不想讓這本書(shū)只是一本SQL入門(mén)書(shū),不想讓這本書(shū)的書(shū)名隨意使用一些時(shí)限詞語(yǔ)來(lái)開(kāi)始或結(jié)尾(例如“……只需30天”,“7天內(nèi)提高……”),也不想說(shuō)服讀者什么。最主要的,我們希望這本書(shū)能幫助你把技能提高一個(gè)層次,用MySQL構(gòu)建出快速、可用的系統(tǒng)——它能解答類似這樣的問(wèn)題:“我怎么才能搭建起一個(gè)MySQL服務(wù)器集群,它能處理數(shù)以百萬(wàn)計(jì)的請(qǐng)求,哪怕有幾臺(tái)服務(wù)器宕機(jī)時(shí),它仍然能正常提供服務(wù)?”我們編寫(xiě)本書(shū)的著眼點(diǎn)不僅在于迎合 MySQL應(yīng)用開(kāi)發(fā)人員的需求,還在于滿足MySQL管理員的嚴(yán)格要求,管理員需要不管開(kāi)發(fā)人員和用戶怎么折騰,服務(wù)器都能掛在線上正常運(yùn)行。如前所述,我們假定你已經(jīng)具備了一些MySQL的相關(guān)經(jīng)驗(yàn),比較理想的就是你已經(jīng)讀過(guò)一本MySQL方面的入門(mén)書(shū)。我們同樣也假定你具備一些常用的系統(tǒng)管理、網(wǎng)絡(luò)和 Unix風(fēng)格操作系統(tǒng)等方面的經(jīng)驗(yàn)。經(jīng)過(guò)修訂、擴(kuò)充后的第二版對(duì)于第一版里的所有主題都作了更深入的講解,并增加了一些新的主題。這也部分地反映了自本書(shū)首次出版之后,MySQL世界發(fā)生的一些變化:MySQL現(xiàn)在已經(jīng)成為軟件中更大更復(fù)雜的一部分。如同其重要性一樣,它的普及度也提高了:MySQL社區(qū)變得更加龐大,更多的大企業(yè)把MySQL應(yīng)用到他們的關(guān)鍵業(yè)務(wù)系統(tǒng)中。自本書(shū)第一版發(fā)布以后,MySQL已被廣泛認(rèn)同可作為企業(yè)級(jí)應(yīng)用。人們也越來(lái)越多地把MySQL用在互聯(lián)網(wǎng)應(yīng)用上,這些應(yīng)用若發(fā)生故障和其他問(wèn)題都無(wú)法被掩飾過(guò)去,也不能被容忍。作為我們努力的結(jié)果,第二版的內(nèi)容著重點(diǎn)跟第一版略有不同。我們會(huì)像強(qiáng)調(diào)性能一樣,強(qiáng)調(diào)可用性和準(zhǔn)確性,這部分由于我們自己也把MySQL用在那些運(yùn)作著巨大金額的業(yè)務(wù)系統(tǒng)里。我們對(duì)Web應(yīng)用也有著切身體驗(yàn),MySQL在這方面正變得越來(lái)越普及。第二版里會(huì)談?wù)摰皆贛ySQL周邊擴(kuò)展的世界,而這個(gè)世界在第一版編寫(xiě)時(shí)還不存在。 我認(rèn)識(shí) Peter、Vadim和Arjen已經(jīng)有很長(zhǎng)一段時(shí)間,見(jiàn)證了他們長(zhǎng)久以來(lái)在自己項(xiàng)目上使用MySQL和為各類高標(biāo)準(zhǔn)客戶調(diào)優(yōu)MySQL服務(wù)器的歷史。另一方面,Baron為增強(qiáng)MySQL的功能編寫(xiě)了許多客戶端軟件。作者們的專業(yè)背景清晰地反映在了徹底重寫(xiě)《High Performance MySQL: Optimizations, Replication,Backups,and More》第二版的工作里。這本書(shū)不只告訴你如何優(yōu)化工作,從而能比以前更好地使用MySQL,作者們還做了大量額外的工作,親自編制執(zhí)行基準(zhǔn)測(cè)試,并將結(jié)果發(fā)布出來(lái)以佐證他們的觀點(diǎn)。這些信息讓讀者可以借此獲悉許多很有價(jià)值的MySQL內(nèi)部工作機(jī)制——這在其他書(shū)中是難以得到的;同樣,這些信息也能幫助讀者避開(kāi)那些在將來(lái)會(huì)引發(fā)糟糕性能的錯(cuò)誤。我不但要向剛剛接觸MySQL服務(wù)器,正準(zhǔn)備編寫(xiě)第一個(gè)MySQL應(yīng)用的初學(xué)者推薦這本書(shū),還要向富有經(jīng)驗(yàn)的用戶推薦這本書(shū),他們已經(jīng)對(duì)基于MySQL的應(yīng)用作過(guò)一些調(diào)優(yōu)的工作,現(xiàn)在正需要在這個(gè)方向上再前進(jìn)“一小步”。-Michael Widenius2008年3月 在進(jìn)入MySQL世界之前,先照例介紹一下MySQL的歷史(況且本書(shū)里也沒(méi)提到這些)。真正以MySQL為名的數(shù)據(jù)庫(kù)是從1994年開(kāi)始開(kāi)發(fā)的,并于1995年第一次呈現(xiàn)在小范圍的用戶面前,它的開(kāi)發(fā)者剛好不是美國(guó)人,而是兩個(gè)瑞典人Michael Widenius 和 David Axmark。那時(shí)的MySQL還非常簡(jiǎn)陋,除了在一個(gè)表上做一些Insert、Update、Delete和Select操作,恐怕沒(méi)有更多的功能給用戶使用。這種情況直到2001年左右發(fā)布3.23版的時(shí)候,才有了顯著的進(jìn)步——它支持大多數(shù)的基本SQL操作了,而且還集成了我們現(xiàn)在熟識(shí)的 MyISAM和InnoDB存儲(chǔ)引擎。然后又是幾年不斷完善的過(guò)程,到了2004年10月,這個(gè)夯實(shí)基礎(chǔ)的過(guò)程到達(dá)了頂峰——4.1這個(gè)經(jīng)典版本發(fā)布了。次年10月,又一里程碑式的MySQL版本發(fā)布了,在新出的MySQL 5.0 里加入了游標(biāo)、存儲(chǔ)過(guò)程、觸發(fā)器、視圖和事務(wù)的支持,準(zhǔn)備進(jìn)入中高端應(yīng)用領(lǐng)域。在5.0之后的版本里,MySQL明確地表現(xiàn)出邁向高性能數(shù)據(jù)庫(kù)的發(fā)展步伐。到今天,MySQL已經(jīng)上升到了600多萬(wàn)的裝機(jī)量,著名的WordPress、phpBB都以MySQL為后臺(tái)數(shù)據(jù)庫(kù),很多大型的WWW應(yīng)用例如Wikipedia、Google和Facebook,也都采用了MySQL作為它們的數(shù)據(jù)存儲(chǔ)系統(tǒng)。反觀國(guó)內(nèi),鑒于心照不宣的原因,MySQL的普及程度還不如SQL Server。就我這些年來(lái)的所見(jiàn)所聞而言,一直作為MySQL黃金搭檔的PHP都常常使用別的數(shù)據(jù)庫(kù),更別提其他開(kāi)發(fā)語(yǔ)言了。好在那些上規(guī)模企業(yè),尤其是外資企業(yè)里,多數(shù)明智的IT負(fù)責(zé)人在項(xiàng)目前期都會(huì)提議使用MySQL,原因之一是它是免費(fèi)的,一般不會(huì)產(chǎn)生授權(quán)費(fèi)用問(wèn)題,原因之二是它足夠用了,不是嗎?你想要的增、刪、改、聯(lián)接(Joint)、嵌套查詢它都有;你想要的視圖、存儲(chǔ)過(guò)程、觸發(fā)器、事務(wù)它也有;如果你要集群,它也能提供。但是,使用MySQL是一回事,用好MySQL又是另外一回事。市面上更多的是關(guān)于MySQL開(kāi)發(fā)的書(shū)籍,這些書(shū)籍的很多篇幅都花費(fèi)在SQL語(yǔ)句的學(xué)習(xí)上。若要獲得關(guān)于MySQL性能提高方面的資料,我們只能在網(wǎng)上的各個(gè)論壇或博客上披沙揀金了,而本書(shū)則系統(tǒng)性地從各個(gè)方面講述一個(gè)高性能MySQL應(yīng)用應(yīng)該怎么來(lái)做。作者們都是這方面的行家里手,所以內(nèi)容也是全面、充實(shí),無(wú)論是架構(gòu)師設(shè)計(jì)師、程序開(kāi)發(fā)人員,還是系統(tǒng)管理員都能找到感興趣的方面。在閱讀正文前,最好能夠先讀一下作者精心編寫(xiě)的前言部分,通過(guò)它把握整本書(shū)內(nèi)容的構(gòu)成方式和相互關(guān)聯(lián),之后,帶有目的性地閱讀本書(shū)會(huì)更富有成效。本書(shū)由李軍、王小東、康建勛三人合作翻譯完成,其中,康建勛翻譯第1章和第2章前31頁(yè);王小東翻譯第2章的后17頁(yè),以及第3章至第8章;李軍翻譯了序言、前言、第 9章至第14章、所有附錄,以及作者介紹、封面、封底等內(nèi)容,并撰寫(xiě)了內(nèi)容簡(jiǎn)介。翻譯的過(guò)程也是譯者與編輯、審閱人員之間交互的過(guò)程,在這個(gè)過(guò)程里,編輯徐定翔老師,審閱人金照林老師、柳安意老師給予了我們很大的幫助。如果說(shuō)譯者是生產(chǎn)毛坯的工匠,那么他們就是把毛坯打磨成精品呈現(xiàn)給讀者的人,在此十分感謝他們!同樣地,我們也要感謝家人和朋友。我們把那些本來(lái)應(yīng)該陪伴家人出游,或者參加朋友聚會(huì)的時(shí)間,都“自私”地用在翻譯本書(shū)上了。他們都比較寬容,一句“到時(shí)要請(qǐng)客哦”就原諒了我們,謝謝他們的支持!最后,得向讀者們說(shuō)聲抱歉,由于術(shù)業(yè)專攻不同、識(shí)見(jiàn)淺深有別之故,譯文中難免會(huì)有詰屈聱牙、詞不達(dá)意甚至疏誤之處,還請(qǐng)讀者不吝指正。譯者2009年12月
內(nèi)容概要
《高性能MySQL(第2版)》榮獲2009年Jolt圖書(shū)大獎(jiǎng),是不可多得的分享MySQL實(shí)用經(jīng)驗(yàn)的圖書(shū)。它不但可以幫助MySQL初學(xué)者提高使用技巧,更為有經(jīng)驗(yàn)的MySQL DBA指出了開(kāi)發(fā)高性能MySQL應(yīng)用的途徑?!陡咝阅躆ySQL(第2版)》包含14章和4個(gè)附錄,內(nèi)容覆蓋MySQL系統(tǒng)架構(gòu)、設(shè)計(jì)應(yīng)用技巧、SQL語(yǔ)句優(yōu)化、服務(wù)器性能調(diào)優(yōu)、系統(tǒng)配置管理和安全設(shè)置、監(jiān)控分析,以及復(fù)制、擴(kuò)展和備份/還原等主題,每一章的內(nèi)容自成體系,適合各領(lǐng)域技術(shù)人員作選擇性的閱讀。
書(shū)籍目錄
序 I前言 III第1章:MySQL架構(gòu) 11.1 MySQL的邏輯架構(gòu) 11.2 并發(fā)控制 31.3 事務(wù) 61.4 多版本并發(fā)控制 121.5 MySQL的存儲(chǔ)引擎 14第2章:尋找瓶頸:基準(zhǔn)測(cè)試(Benchmarking)與性能分析(Profiling) 322.1 為什么要進(jìn)行基準(zhǔn)測(cè)試 332.2 基準(zhǔn)測(cè)試策略 332.3 基準(zhǔn)測(cè)試工具 422.4 基準(zhǔn)測(cè)試樣例 442.5 性能分析(Profiling) 542.6 分析操作系統(tǒng) 76第3章:架構(gòu)優(yōu)化和索引 803.1 選擇優(yōu)化的數(shù)據(jù)類型 803.2 索引基礎(chǔ)知識(shí) 953.3 高性能索引策略 1063.4 索引實(shí)例研究 1313.5 索引和表維護(hù) 1363.6 正則化和非正則化 1393.7 加速ALTER TABLE 1453.8 對(duì)存儲(chǔ)引擎的說(shuō)明 149第4章:查詢性能優(yōu)化 1524.1 基本原則:優(yōu)化數(shù)據(jù)訪問(wèn) 1524.2 重構(gòu)查詢的方式 1574.3 查詢執(zhí)行基礎(chǔ)知識(shí) 1604.4 MySQL查詢優(yōu)化器的限制 1794.5 優(yōu)化特定類型的查詢 1884.6 查詢優(yōu)化提示 1954.7 用戶定義變量 198第5章:MySQL高級(jí)特性 2045.1 MySQL查詢緩存 2045.2 在MySQL中存儲(chǔ)代碼 2175.3 游標(biāo) 2245.4 準(zhǔn)備語(yǔ)句 2255.5 用戶自定義函數(shù) 2305.6 視圖 2315.7 字符集和排序規(guī)則 2375.8 全文搜索 2445.9 外鍵約束 2525.10 合并表和分區(qū) 2535.11 分布式(XA)事務(wù) 262第6章:優(yōu)化服務(wù)器設(shè)置 2656.1 配置基礎(chǔ)知識(shí) 2666.2 通用調(diào)優(yōu)原則 2716.3 MySQL I/O調(diào)優(yōu) 2816.4 MySQL并發(fā)調(diào)優(yōu) 2956.5 基于工作負(fù)載調(diào)優(yōu) 2986.6 每聯(lián)接(Per-Connection)設(shè)置調(diào)優(yōu) 304第7章:操作系統(tǒng)和硬件優(yōu)化 3057.1 什么限制了MySQL的性能 3067.2 如何為MySQL選擇CPU 3067.3 平衡內(nèi)存和磁盤(pán)資源 3097.4 為從服務(wù)器選擇硬件 3177.5 RAID性能優(yōu)化 3177.6 存儲(chǔ)區(qū)域網(wǎng)絡(luò)和網(wǎng)絡(luò)附加存儲(chǔ) 3257.7 使用多個(gè)磁盤(pán)卷 3267.8 網(wǎng)絡(luò)配置 3287.9 選擇操作系統(tǒng) 3307.10 選擇文件系統(tǒng) 3317.11 線程處理 3347.12 交換 3347.13 操作系統(tǒng)狀態(tài) 336第8章:復(fù)制 3438.1 復(fù)制概述 3438.2 創(chuàng)建復(fù)制 3478.3 揭示復(fù)制的真相 3558.4 復(fù)制拓?fù)? 3628.5 復(fù)制和容量規(guī)劃 3768.6 復(fù)制管理和維護(hù) 3788.7 復(fù)制問(wèn)題和解決方案 3888.8 復(fù)制有多快 4058.9 MySQL復(fù)制的未來(lái) 407第9章:伸縮性與高可用性 4099.1 術(shù)語(yǔ) 4109.2 MySQL的伸縮性 4129.3 負(fù)載平衡 4369.4 高可用性 447第10章:應(yīng)用層面的優(yōu)化 45710.1 應(yīng)用程序性能概述 45710.2 Web服務(wù)器的議題 46010.3 緩存 46310.4 擴(kuò)展MySQL 47010.5 可替代的MySQL 471第11章:備份與還原 47211.1 概況 47311.2 要權(quán)衡的事項(xiàng) 47711.3 管理和備份二進(jìn)制日志 48611.4 數(shù)據(jù)備份 48811.5 從備份中還原 49911.6 備份和還原的速度 51011.7 備份工具 51111.8 腳本化備份 518第12章:安全 52112.1 術(shù)語(yǔ) 52112.2 賬號(hào)的基本知識(shí) 52212.3 操作系統(tǒng)安全 54112.4 網(wǎng)絡(luò)安全 54212.5 數(shù)據(jù)加密 55012.6 在Chroot環(huán)境里使用MySQL 554第13章:MySQL服務(wù)器的狀態(tài) 55713.1 系統(tǒng)變量 55713.2 SHOW STATUS 55813.3 SHOW INNODB STATUS 56513.4 SHOW PROCESSLIST 57813.5 SHOW MUTEX STATUS 57913.6 復(fù)制的狀態(tài) 58013.7 INFORMATION_SCHEMA 581第14章:用于高性能MySQL的工具 58314.1 帶界面的工具 58314.2 監(jiān)控工具 58514.3 分析工具 59514.4 MySQL的輔助工具 59814.5 更多的信息來(lái)源 601附錄A:大文件傳輸 603附錄B:使用EXPLAIN 607附錄C:在MySQL里使用Sphinx 623附錄D:鎖的調(diào)試 650索引 659
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版