出版時間:2013-1 出版社:清華大學(xué)出版社 作者:(美) 布拉德福(Bradford,R. ) 頁數(shù):201 字?jǐn)?shù):172000 譯者:李雪鋒
Tag標(biāo)簽:無
內(nèi)容概要
《Effective MySQL之SQL語句最優(yōu)化》主要內(nèi)容:
●找出收集和診斷問題必備的分析命令;
●創(chuàng)建MySQL索引來改進(jìn)查詢性能;
●掌握MySQL的查詢執(zhí)行計劃;
●找出影響查詢執(zhí)行和性能的關(guān)鍵配置變量;
●用SQL語句優(yōu)化的生命周期來識別、確認(rèn)、分析然后優(yōu)化SQL語句,并檢查優(yōu)化的結(jié)果;
●學(xué)習(xí)使用不為常人所知的一些性能技巧來改進(jìn)索引效率并簡化SQL語句。
作者簡介
布拉德福(Ronald Bradford),Oracle
ACEDirector,是一位在關(guān)系型數(shù)據(jù)庫領(lǐng)域有著20多年豐富經(jīng)驗的專家。他擁有深厚的專業(yè)背景以及10年以上Ingres和Oracle系統(tǒng)的工作背景,他在過去12年中致力于MySQL的發(fā)展。他曾在2009年被提名為MySQL社區(qū)成員并于2010年被提名為OracleACE
Director,他的咨詢領(lǐng)域的專家背景以及多次在國際會議上的發(fā)言也為他帶來了廣泛的國際認(rèn)知度。他是清華大學(xué)出版社引進(jìn)并出版的《PHP+MySQL專家編程》一書的作者之一。
書籍目錄
第1章 DBA五分鐘速成
1.1 識別性能問題
1.1.1 尋找運行緩慢的SQL語句
1.1.2 確認(rèn)低效查詢
1.2 優(yōu)化查詢
1.2.1 不應(yīng)該做的事情
1.2.2 確認(rèn)優(yōu)化
1.2.3 正確的方式
1.2.4 備選的解決方案
1.2 本章小結(jié)
第2章 基本的分析命令
2.1 EXPLAIN命令
2.1.1 EXPLAIN PARTITIONS命令
2.1.2 EXPLAIN EXTENDED命令
2.2 SHOW CREATE TABLE命令
2.3 SHOWINDEXES命令
2.4 SHOW TABLE STATUS命令
2.5 SHOW STATUS命令
2.6 SHOWVARIABLES命令
2.7 rNFORMATION SCHEMA
2.8 本章小結(jié)
第3章 深入理解MySQL的索引
3.1 示例表
3.2 MySQL索引用法
3.2.1 數(shù)據(jù)完整性
3.2.2 優(yōu)化數(shù)據(jù)訪問
3.2.3 表連接
3.2.4 結(jié)果排序
3.2.5 聚合操作
3.3 關(guān)于存儲引擎
3.4 索引專業(yè)術(shù)語
3.5 MySQL索引類型
3.5.1 索引數(shù)據(jù)結(jié)構(gòu)理論
3.5.2 MySQL實現(xiàn)
3.6 MySQL分區(qū)
3.7 本章小結(jié)
第4章 創(chuàng)建MySQL索引
第5章 創(chuàng)建更好的MySQL索引
第6章 MySQL配置選項
第7章 SQL的生命周期
第8章 性能優(yōu)化之隱藏秘籍
第9章 MySQL EXPLAIN命令詳解
章節(jié)摘錄
版權(quán)頁: 4.5.2 DDL影響 隨著表大小的不斷增長,對性能的影響也不斷加大。例如,在主表上添加索引平均需要20~30秒。 mysql>ALTER TABLE album ADD INDEX ml(album_type_id,country_id);Query OK,553875 rows affected(21.05 sec) 在以往版本中,ALTER語句的開銷是阻塞其他語句,就像創(chuàng)建一個新版本的表那樣。在這期間可以SELECT數(shù)據(jù),但根據(jù)標(biāo)準(zhǔn)的升級法則,任何DML操作都會導(dǎo)致所有語句被阻塞。當(dāng)表的大小有1G或者100G,這個阻塞時間可能會非常長。但比較近期的版本在包括MySQL產(chǎn)品方面和創(chuàng)新的解決方案方面都有了很多改進(jìn)。 添加索引帶來的影響并不總是一樣,也會有些例外情況。InnoDB提供了快速創(chuàng)建索引的特性,從MySQL 5.1版本開始就可以在InnoDB的插件中使用了,并且在MySQL 5.5或更高版本中已經(jīng)成為默認(rèn)設(shè)置了。 其他搜索引擎也可以以不同方式來實現(xiàn)執(zhí)行鎖定的快速索引的創(chuàng)建,Tokutek就是其中的一個。 對磁盤空間的影響也是一個重要的考慮因素,尤其是當(dāng)你在InnoDB中使用默認(rèn)的公共表空間配置的時候。MySQL會為你的表創(chuàng)建一份副本。如果表的大小有200GB,那么在執(zhí)行ALTERTABLE時你需要至少200GB額外的磁盤空間。使用InnoDB時,在執(zhí)行期間這些額外的磁盤空間會被添加到公共表空間中。這部分磁盤空間在命令完成后不會被文件系統(tǒng)回收,而是當(dāng)InnoDB需要額外磁盤空間時在內(nèi)部被重復(fù)利用。盡管你可以調(diào)整策略讓每個表用單獨的表空間,但對于寫操作密集的系統(tǒng),這也是有影響的。 技巧 有一些技巧可以讓阻塞操作減少到最低限度。你可以選擇使用一個高可用性的容錯度高的主表復(fù)制技術(shù)來支持在線變更表結(jié)構(gòu)。比如近期Shlomi Noach介紹的oak-online-alter-table工具。 4.5.3磁盤空間影響 使用第2章介紹的INFORMATION SCHEMA.TABLES查詢可以查看本章使用的album表的大小。
編輯推薦
《Effective MySQL之SQL語句最優(yōu)化》提供了很多可以用于改進(jìn)數(shù)據(jù)庫和應(yīng)用程序性能的最佳實踐技巧,并對這些技巧做了詳細(xì)的解釋,希望能夠通過一步步詳細(xì)介紹SQL優(yōu)化的方法,幫助讀者分析和調(diào)優(yōu)有問題的SQL語句。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Effective MySQL之SQL語句最優(yōu)化 PDF格式下載