MySQL技術(shù)內(nèi)幕

出版時間:2012-4-15  出版社:機械工業(yè)出版社華章公司  作者:姜承堯  頁數(shù):324  
Tag標(biāo)簽:無  

前言

前言:為什么要寫這本書多年來,我一直在和各種不同的數(shù)據(jù)庫打交道,見證了MySQL從一個小型的關(guān)系型數(shù)據(jù)庫發(fā)展成為各大互聯(lián)網(wǎng)企業(yè)的核心數(shù)據(jù)庫系統(tǒng)的過程,期間參與了一些大大小小的項目開發(fā)工作,并成功地幫助開發(fā)人員構(gòu)建了一些可靠的、健壯的應(yīng)用程序。在這個過程中我積累了一些經(jīng)驗,正是這些不斷累積的經(jīng)驗賦予了我靈感,于是有了本書。這本書實際上反映了這些年來我做了哪些事情,匯集了很多同行每天可能會遇到的一些問題,并給出了解決方案。本書是“MySQL技術(shù)內(nèi)幕”系列的第二本書,我將其命名為“SQL編程”而非“SQL查詢”,因為我想讓更多的開發(fā)人員和DBA意識到SQL也是一門語言,與我們平時接觸的C語言等編程語言并沒有什么不同。正因如此,我們也要追求SQL的編程之美。然而與其他語言不同的是,SQL語言不僅是面向過程的語言,更多的時候,通過SQL語言提供的面向集合的思想可以解決數(shù)據(jù)庫中遇到的很多問題。當(dāng)然,SQL語言本身也提供了面向過程的方法,但是如果使用不當(dāng),會在數(shù)據(jù)庫性能方面遭遇夢魘。SQL編程需要掌握的知識遠(yuǎn)比想象中多,只有掌握各種知識,綜合運用面向過程和面向集合的思想,才能真正解決所遇到的問題。不要迷信網(wǎng)上的任何“神話”,不要被自己或他人的經(jīng)驗所左右。我一直堅信,只有理解了數(shù)據(jù)庫內(nèi)部運行的原理,才能承自然之道,“乘天地之正,而御六氣之辯”,做到真正的“無招勝有招”。另一方面,MySQL數(shù)據(jù)庫目前大多被用于互聯(lián)網(wǎng)的聯(lián)機事務(wù)處理應(yīng)用中,給大部分用戶造成MySQL數(shù)據(jù)庫不能執(zhí)行復(fù)雜SQL查詢的錯覺。本書將列舉各種復(fù)雜的查詢,使用戶了解MySQL數(shù)據(jù)庫處理復(fù)雜查詢的執(zhí)行過程。此外,由于MySQL數(shù)據(jù)庫的不斷發(fā)展,其分支版本已經(jīng)開始支持Hash Join。相信隨著時間的推移以及MySQL數(shù)據(jù)庫本身的不斷發(fā)展,MySQL數(shù)據(jù)庫同樣會在聯(lián)機分析處理應(yīng)用中占有一席之地。大家需要做好這方面的準(zhǔn)備,這也是本書將提供給你的。最后,希望這本書可以引領(lǐng)開發(fā)人員及DBA從不同的角度來看待SQL語言和數(shù)據(jù)庫的開發(fā)工作。倘若這本書能解決你在實際生產(chǎn)環(huán)境中遇到的問題,我會非常榮幸。讀者對象數(shù)據(jù)庫管理員數(shù)據(jù)庫開發(fā)人員數(shù)據(jù)庫架構(gòu)設(shè)計師各類應(yīng)用程序開發(fā)人員如何閱讀本書書中的示例一共用到三個數(shù)據(jù)庫文件:一個是employees數(shù)據(jù)庫,該數(shù)據(jù)庫是MySQL數(shù)據(jù)庫官方提供的示例數(shù)據(jù)庫,主要用來模擬公司員工的數(shù)據(jù),用戶可以通過官網(wǎng)下載(http://dev.mysql.com/doc/index-other.html);另一個是dbt3數(shù)據(jù)庫,是通過Database Test Suite程序生成的,該數(shù)據(jù)庫較大,主要用來展示一些復(fù)雜的查詢;還有一個tpcc數(shù)據(jù)庫,是一個模擬TPC-C測試的數(shù)據(jù)庫,用戶可以從http://code.google.com/p/david-mysql-tools/下載。本書一共有10章,每章都像一本迷你書,可以單獨成冊。用戶可以有選擇地閱讀,但是推薦根據(jù)本書的組織方式進(jìn)行閱讀,這樣會更具有條理性。第1章 SQL編程主要介紹了MySQL數(shù)據(jù)庫的發(fā)展歷史和什么是SQL編程。希望讀者能通過該章了解MySQL的深厚歷史背景,并且知道它已經(jīng)不再是一個小型關(guān)系型數(shù)據(jù)庫系統(tǒng)。此外,還重點強調(diào)了SQL編程的三個階段,希望讀者可以通過本書的學(xué)習(xí)達(dá)到最后的融合階段。第2章 數(shù)據(jù)類型詳細(xì)介紹了MySQL數(shù)據(jù)庫中的各種數(shù)據(jù)類型和與之相應(yīng)的各種SQL編程問題。數(shù)據(jù)類型是SQL編程的基石。每一位MySQL數(shù)據(jù)庫應(yīng)用的開發(fā)人員都應(yīng)該好好閱讀本章。第3章 查詢處理深入探討了邏輯查詢與物理查詢。邏輯查詢幫助讀者理解數(shù)據(jù)庫應(yīng)該得到怎樣的結(jié)果;物理查詢是MySQL數(shù)據(jù)庫通過分析表的結(jié)構(gòu),選擇最小成本的執(zhí)行計劃來處理SQL語句,但是無論怎樣,最終的結(jié)果應(yīng)該和邏輯查詢一樣。第4章 子查詢子查詢是被很多開發(fā)人員和DBA詬病的一個方面。如何正確地理解MySQL子查詢的執(zhí)行方式并實現(xiàn)對其優(yōu)化,是本章最重要的任務(wù)。本章的最后還講解了MySQL分支版本MariaDB對子查詢的優(yōu)化。在MariaDB數(shù)據(jù)庫中,子查詢再也不是什么難題了。第5章 聯(lián)接與集合操作聯(lián)接和集合是關(guān)系數(shù)據(jù)庫中常見的操作,該章詳細(xì)而深入地介紹了MySQL數(shù)據(jù)庫中的各種聯(lián)接及其內(nèi)部的實現(xiàn)算法,同時也介紹了MariaDB數(shù)據(jù)庫中引入的Hash Join,彌補了MySQL數(shù)據(jù)庫在OLAP應(yīng)用中的短板。本章最后針對集合的各種操作給出了解決方案。第6章 聚合和旋轉(zhuǎn)操作聚合與旋轉(zhuǎn)在報表系統(tǒng)中非常常見,本章主要講解了MySQL數(shù)據(jù)庫對上述兩種操作的處理方法,以及一些常見問題的解決方案。第7章 游標(biāo)游標(biāo)是面向過程的編程方式,這與前幾章介紹的面向集合的編程方式不同。雖然在大多數(shù)情況下游標(biāo)處理的性能較低,但是只要在正確的場合使用,游標(biāo)也會使SQL編程的效率得到極大提升。第8章 事務(wù)編程全面講解了MySQL數(shù)據(jù)庫中關(guān)于事務(wù)的各種編程技巧,同時也對事物的分類進(jìn)行了詳細(xì)的介紹。本章主要面向以InnoDB存儲引擎為核心的應(yīng)用編程。第9章 索引一般來說,索引可以提高SQL語句的執(zhí)行速度,但是并非所有情況都是如此。本章詳細(xì)分析了各種索引的內(nèi)部實現(xiàn),以及哪種情況下使用索引可以帶來效率的提升。這對SQL編程來說非常重要。第10章 分區(qū)分區(qū)是設(shè)計表時需要考慮的重要問題之一。正確和有效地分區(qū)會對SQL編程帶來巨大的影響。本章告訴讀者應(yīng)該如何分區(qū),以及如何通過分區(qū)來進(jìn)行SQL編程。

內(nèi)容概要

本書是暢銷書《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》的姊妹篇,深刻揭示了MySQL中SQL編程的精髓與奧秘,能為開發(fā)者和DBA們利用SQL語言解決各種與開發(fā)和管理相關(guān)的MySQL難題提供很好的指導(dǎo)和幫助。
全書一共10章,全面探討了MySQL中SQL編程的各種方法、技巧與最佳實踐。第1章首先介紹了SQL編程的概念、數(shù)據(jù)庫的應(yīng)用類型以及SQL查詢分析器,然后介紹了SQL編程的三個階段,希望讀者通過本書的學(xué)習(xí)能達(dá)到最后的融合階段。第2章全面講解了MySQL中的各種數(shù)據(jù)類型和與之相對應(yīng)的各種編程問題。第3章深入探討了邏輯查詢與物理查詢的原理與方法。第4章的主題是子查詢,不僅講解了各種常用的子查詢方法及其優(yōu)化,而且還講解了MariaDB對子查詢的優(yōu)化。第5章首先詳細(xì)地分析了MySQL中的各種聯(lián)接及其內(nèi)部的實現(xiàn)算法,以及MariaDB數(shù)據(jù)庫中引入的Hash
Join,然后針對關(guān)于集合的各種操作給出了解決方案。第6章分享了聚合和旋轉(zhuǎn)操作的方法與技巧,并對一些經(jīng)典的常見問題給出了解決方案。第7章深入闡述了游標(biāo)的使用,重點在于如何通過正確地使用游標(biāo)來提高SQL編程的效率。第8章講解了關(guān)于事務(wù)的各種編程技巧,同時對事務(wù)的分類進(jìn)行了詳細(xì)闡述。第9章詳細(xì)分析了各種索引的內(nèi)部實現(xiàn),探討了如何使用索引來提升查詢效率。第10章介紹了分區(qū)的方法與技巧,闡明了如何通過分區(qū)來進(jìn)行SQL編程。
無論你是開發(fā)人員還是DBA,無論你是需要一本SQL查詢手冊還是希望系統(tǒng)深入地學(xué)習(xí)SQL編程,本書都會是不錯的選擇。

作者簡介

姜承堯(David
Jiang),資深MySQL數(shù)據(jù)庫專家,MySQL開源分支版本InnoSQL
的創(chuàng)始人,獨立數(shù)據(jù)庫咨詢顧問不僅擅長于數(shù)據(jù)庫的管理和維護(hù),還擅長于數(shù)據(jù)庫的開發(fā),同時一直致力于MySQL數(shù)據(jù)庫底層實現(xiàn)原理的研究和探索,對高性能數(shù)據(jù)庫和數(shù)據(jù)倉庫也有深刻而獨到的理解。目前就職于網(wǎng)易研究院,擔(dān)任后臺技術(shù)中心技術(shù)經(jīng)理一職,從事MySQL數(shù)據(jù)庫底層以及云的相關(guān)的開發(fā)工作。曾領(lǐng)導(dǎo)并參與了多個大型核心數(shù)據(jù)庫應(yīng)用的設(shè)計、實施、管理和維護(hù),實戰(zhàn)經(jīng)驗非常豐富。活躍于開源數(shù)據(jù)庫和開源軟件領(lǐng)域,是著名開源社區(qū)ChinaUnix
MySQL版塊的版主,熱衷于分享MySQL數(shù)據(jù)庫的各種成功應(yīng)用實踐。

書籍目錄


前言
第1章 SQL編程
 1.1 MySQL數(shù)據(jù)庫
 1.1.1 MySQL數(shù)據(jù)庫歷史
 1.1.2 MySQL數(shù)據(jù)庫的分支版本
 1.2 SQL編程
 1.3 數(shù)據(jù)庫的應(yīng)用類型
 1.3.1 OLTP
 1.3.2 OLAP
 1.3.3 OLTP與OLAP的比較
 1.3.4 MySQL存儲引擎及其面向的數(shù)據(jù)庫應(yīng)用
 1.4 圖形化的SQL查詢分析器
 1.4.1 MySQL Workbench
 1.4.2 Toad for MySQL
 1.4.3 iMySQL-Front
 1.5 小結(jié)
第2章 數(shù)據(jù)類型
 2.1 類型屬性
 2.1.1 UNSIGNED
 2.1.2 ZEROFILL
 2.2 SQL_MODE設(shè)置
 2.3 日期和時間類型
 2.3.1 DATETIME和 DATE
 2.3.2 TIMESTAMP
 2.3.3 YEAR和TIME
 2.3.4 與日期和時間相關(guān)的函數(shù)
 2.4 關(guān)于日期的經(jīng)典SQL編程問題
 2.4.1 生日問題
 2.4.2 重疊問題
 2.4.3 星期數(shù)的問題
 2.5 數(shù)字類型
 2.5.1 整型
 2.5.2 浮點型(非精確類型)
 2.5.3 高精度類型
 2.5.4 位類型
 2.6 關(guān)于數(shù)字的經(jīng)典SQL編程問題
 2.6.1 數(shù)字輔助表
 2.6.2 連續(xù)范圍問題
 2.7 字符類型
 2.7.1 字符集
 2.7.2 排序規(guī)則
 2.7.3 CHAR和VARCHAR
 2.7.4 BINARY和VARBINARY
 2.7.5 BLOB和TEXT
 2.7.6 ENUM和SET類型
 2.8 小結(jié)
第3章 查詢處理
 3.1 邏輯查詢處理
 3.1.1 執(zhí)行笛卡兒積
 3.1.2 應(yīng)用ON過濾器
 3.1.3 添加外部行
 3.1.4 應(yīng)用WHERE過濾器
 3.1.5 分組
 3.1.6 應(yīng)用ROLLUP或CUBE
 3.1.7 應(yīng)用HAVING過濾器
 3.1.8 處理SELECT列表
 3.1.9 應(yīng)用DISTINCT子句
 3.1.10 應(yīng)用ORDER BY子句
 3.1.11 LIMIT子句
 3.2 物理查詢處理
 3.3 小結(jié)
第4章 子查詢
 4.1 子查詢概述
 4.1.1 子查詢的優(yōu)點和限制
 4.1.2 使用子查詢進(jìn)行比較
 4.1.3 使用ANY、IN和SOME進(jìn)行子查詢
 4.1.4 使用ALL進(jìn)行子查詢
 4.2 獨立子查詢
 4.3 相關(guān)子查詢
 4.4 EXISTS謂詞
 4.4.1 EXISTS
 4.4.2 NOT EXISTS
 4.5 派生表
 4.6 子查詢可以解決的經(jīng)典問題
 4.6.1 行號
 4.6.2 分區(qū)
 4.6.3 最小缺失值問題
 4.6.4 缺失范圍和連續(xù)范圍
 4.7 MariaDB對SEMI JOIN的優(yōu)化
 4.7.1 概述
 4.7.2 Table Pullout優(yōu)化
 4.7.3 Duplicate Weedout 優(yōu)化
 4.7.4 Materialization優(yōu)化
 4.8 小結(jié)
第5章 聯(lián)接與集合操作
 5.1 聯(lián)接查詢
 5.1.1 新舊查詢語法
 5.1.2 CROSS JOIN
 5.1.3 INNER JOIN
 5.1.4 OUTER JOIN
 5.1.5 NATURAL JOIN
 5.1.6 STRAIGHT_JOIN
 5.2 其他聯(lián)接分類
 5.2.1 SELF JOIN
 5.2.2 NONEQUI JOIN
 5.2.3 SEMI JOIN和ANTI SEMI JOIN
 5.3 多表聯(lián)接
 5.4 滑動訂單問題
 5.5 聯(lián)接算法
 5.5.1 Simple Nested-Loops Join算法
 5.5.2 Block Nested-Loops Join算法
 5.5.3 Batched Key Access Join算法
 5.5.4 Classic Hash Join算法
 5.6 集合操作
 5.6.1 集合操作的概述
 5.6.2 UNION DISTINCT和UNION ALL
 5.6.3 EXCEPT
 5.6.4 INTERSECT
 5.7 小結(jié)
第6章 聚合和旋轉(zhuǎn)操作
 6.1 聚合
 6.1.1 聚合函數(shù)
 6.1.2 聚合的算法
 6.2 附加屬性聚合
 6.3 連續(xù)聚合
 6.3.1 累積聚合
 6.3.2 滑動聚合
 6.3.3 年初至今聚合
 6.4 Pivoting
 6.4.1 開放架構(gòu)
 6.4.2 關(guān)系除法
 6.4.3 格式化聚合數(shù)據(jù)
 6.5 Unpivoting
 6.6 CUBE 和 ROLLUP
 6.6.1 ROLLUP
 6.6.2 CUBE
 6.7 小結(jié)
第7章 游標(biāo)
 7.1 面向集合與面向過程的開發(fā)
 7.2 游標(biāo)的使用
 7.3 游標(biāo)的開銷
 7.4 使用游標(biāo)解決問題
 7.4.1 游標(biāo)的性能分析
 7.4.2 連續(xù)聚合
 7.4.3 最大會話數(shù)
 7.5 小結(jié)
第8章 事務(wù)編程
 8.1 事務(wù)概述
 8.2 事務(wù)的分類
 8.3 事務(wù)控制語句
 8.4 隱式提交的SQL語句
 8.5 事務(wù)的隔離級別
 8.6 分布式事務(wù)編程
 8.7 不好的事務(wù)編程習(xí)慣
 8.7.1 在循環(huán)中提交
 8.7.2 使用自動提交
 8.7.3 使用自動回滾
 8.8 長事務(wù)
 8.9 小結(jié)
第9章 索引
 9.1 緩沖池、順序讀取與隨機讀取
 9.2 數(shù)據(jù)結(jié)構(gòu)與算法
 9.2.1 二分查找法
 9.2.2 二叉查找樹和平衡二叉樹
 9.3 B+樹
 9.3.1 B+樹的插入操作
 9.3.2 B+樹的刪除操作
 9.4 B+樹索引
 9.4.1 InnoDB B+樹索引
 9.4.2 MyISAM B+樹索引
 9.5 Cardinality
 9.5.1 什么是Cardinality
 9.5.2 InnoDB存儲引擎怎樣統(tǒng)計Cardinality
 9.6 B+樹索引的使用
 9.6.1 不同應(yīng)用中B+樹索引的使用
 9.6.2 聯(lián)合索引
 9.6.3 覆蓋索引
 9.6.4 優(yōu)化器選擇不使用索引的情況
 9.6.5 INDEX HINT
 9.7 Multi-Range Read
 9.8 Index Condition Pushdown
 9.9 T樹索引
 9.9.1 T樹概述
 9.9.2 T樹的查找、插入和刪除操作
 9.9.3 T樹的旋轉(zhuǎn)
 9.10 哈希索引
 9.10.1 散列表
 9.10.2 InnoDB存儲引擎中的散列算法
 9.10.3 自適應(yīng)哈希索引
 9.11 小結(jié)
第10章 分區(qū)
 10.1 分區(qū)概述
 10.2 分區(qū)類型
 10.2.1 RANGE分區(qū)
 10.2.2 LIST分區(qū)
 10.2.3 HASH分區(qū)
 10.2.4 KEY分區(qū)
 10.2.5 COLUMNS分區(qū)
 10.3 子分區(qū)
 10.4 分區(qū)中的NULL值
 10.5 分區(qū)和性能
 10.6 在表和分區(qū)間交換數(shù)據(jù)
 10.7 小結(jié)

章節(jié)摘錄

版權(quán)頁:第1章 SQL編程1.1 MySQL數(shù)據(jù)庫1.2 SQL編程1.3 數(shù)據(jù)庫的應(yīng)用類型1.4 圖形化的SQL查詢分析器1.5 小結(jié)SQL是一種編程語言,用來解決關(guān)系數(shù)據(jù)庫中的相關(guān)問題。SQL編程就是通過SQL語句來解決特定問題的一種編程方式。本章將介紹MySQL數(shù)據(jù)庫中與SQL編程相關(guān)的基礎(chǔ)知識,幫助SQL用戶更好地理解MySQL數(shù)據(jù)庫、數(shù)據(jù)庫應(yīng)用類型,以及與SQL編程相關(guān)的特定問題。1.1 MySQL數(shù)據(jù)庫1.1.1 MySQL數(shù)據(jù)庫歷史 毫無疑問,目前MySQL已經(jīng)成為最為流行的開源關(guān)系數(shù)據(jù)庫系統(tǒng),并且一步一步地占領(lǐng)了原有商業(yè)數(shù)據(jù)庫的市場。可以看到Google、Facebook、Yahoo、網(wǎng)易、久游等大公司都在使用MySQL數(shù)據(jù)庫,甚至將其作為核心應(yīng)用的數(shù)據(jù)庫系統(tǒng)。而MySQL數(shù)據(jù)庫也不再僅僅應(yīng)用于Web項目,其扮演的角色更為豐富。在網(wǎng)絡(luò)游戲領(lǐng)域中,大部分的后臺數(shù)據(jù)庫都采用MySQL數(shù)據(jù)庫,如大家比較熟悉的勁舞團(tuán)、魔獸世界、Second Life等。很少能看到有哪個網(wǎng)絡(luò)游戲數(shù)據(jù)庫不是采用MySQL數(shù)據(jù)庫的。此外,MySQL數(shù)據(jù)庫已成功應(yīng)用于中國外匯交易中心、中國移動、國家電網(wǎng)等許多項目中。越來越多的企業(yè)級項目應(yīng)用“見證”了MySQL數(shù)據(jù)庫的飛速發(fā)展,并預(yù)示著MySQL數(shù)據(jù)庫本身正在逐漸完善并走向成熟。以前會有人詬病MySQL為什么沒有視圖,沒有存儲過程,沒有觸發(fā)器,沒有事件調(diào)度器。而現(xiàn)在,MySQL還沒有什么呢?經(jīng)歷了MySQL 5.0和5.1的發(fā)展,如今MySQL數(shù)據(jù)庫迎來了重要的5.5版本。在了解MySQL 5.5帶給我們的新特性之前,我們先來看看MySQL的發(fā)展歷程。簡單來說,MySQL數(shù)據(jù)庫的發(fā)展可以概括為三個階段:初期開源數(shù)據(jù)庫階段。Sun MySQL階段。Oracle MySQL階段。很多人以為MySQL是最近15年內(nèi)才出現(xiàn)的數(shù)據(jù)庫,其實MySQL數(shù)據(jù)庫的歷史可以追溯到1979年,那時Bill Gates退學(xué)沒多久,微軟公司也才剛剛起步,而Larry的Oracle公司也才成立不久。那時有一個天才程序員Monty Widenius為一個名為TcX的小公司打工,并且用BASIC設(shè)計了一個報表工具,使其可以在4MHz主頻和16KB內(nèi)存的計算機上運行。沒過多久,Monty又將此工具用C語言進(jìn)行了重寫并移植到了UNIX平臺。當(dāng)時,這只是一個很底層的且僅面向報表的存儲引擎,名叫Unireg。雖然TcX這個小公司資源有限,但Monty天賦極高,面對資源有限的不利條件,反而更能發(fā)揮他的潛能。Monty總是力圖寫出最高效的代碼,并因此養(yǎng)成了習(xí)慣。與Monty在一起的還有一些別的同事,很少有人能堅持把那些代碼持續(xù)寫到20年后,而Monty卻做到了。

媒體關(guān)注與評論

David是ChinaUnix社區(qū)資深的MySQL版主,幾年來,在論壇里熱心地為廣大MySQL DBA和開發(fā)者解答了很多問題,非常受歡迎。David是MySQL領(lǐng)域的專家,不僅多年來一直在國內(nèi)的大型企業(yè)從事MySQL相關(guān)的工作,而且還為MySQL編寫了許多開源工具和性能擴展補丁,對MySQL數(shù)據(jù)庫的使用(管理與開發(fā))和原理都非常精通。本書是David多年工作經(jīng)驗的結(jié)晶,系統(tǒng)深入地揭示了MySQL中SQL編程的方方面面,能為我們解決復(fù)雜的MySQL數(shù)據(jù)庫問題提供很好的指導(dǎo)。強烈推薦!——ChinaUnix社區(qū)&ITpub社區(qū)本書的內(nèi)容是告訴你如何使用SQL語言指揮數(shù)據(jù)庫這個“龐然大物”。人與人的溝通需要技巧,與數(shù)據(jù)庫溝通更需要技巧,而一切溝通都需要先從熟悉語言開始。作者沉迷于數(shù)據(jù)庫的世界多年,有天賦,也肯下苦功,是我見過的最優(yōu)秀的DBA之一。他熟知SQL的各種語法技巧,結(jié)合日常工作中的經(jīng)驗和領(lǐng)悟,寫出了這本“內(nèi)幕”。相信我,不管你是需要一本SQL查詢手冊,還是想要獲得更多SQL編程的經(jīng)驗技巧,本書都不可不讀。——顧懿 久游網(wǎng)首席運營官我是幾年前在某個技術(shù)社區(qū)中認(rèn)識David的,記得他總能用深入原理性的闡述來解答網(wǎng)友的疑惑。從中可以看出他對MySQL尤其是InnoDB引擎的理解之深,他的上一本著作《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》推出后廣獲好評,填補了業(yè)界系統(tǒng)化講解InnoDB引擎原理的空白。本書詳細(xì)講解了子查詢、表連接、聚合、事務(wù)、索引等SQL編程各環(huán)節(jié)所涉及的內(nèi)容,全面揭示了MySQL中SQL編程的奧妙,用事實證明了MySQL也是可以處理復(fù)雜SQL查詢的,而非只是個玩具。在這里,我向開發(fā)人員、DBA以及所有對MySQL有興趣的讀者推薦本書,將使你受益匪淺。相信它將再次掀起習(xí)MySQL的熱潮。——葉金榮 ChinaUnix社區(qū) MySQL版主無論是與MySQL數(shù)據(jù)庫相關(guān)的開發(fā)工作,還是MySQL數(shù)據(jù)庫的管理與維護(hù),SQL語言都發(fā)揮著極為重要的作用。所以,對于數(shù)據(jù)管理人員(DBA)和開發(fā)人員來說,掌握SQL編程技巧是全面了解數(shù)據(jù)庫系統(tǒng)的必備條件之一。本書結(jié)合MySQL的歷史、輔助工具、內(nèi)部工作機制等多個角度詳細(xì)講解了SQL編程的方法,展示了SQL在MySQL數(shù)據(jù)庫編程方面(尤其是性能方面)的高級技巧。對于想全面深入地學(xué)習(xí)SQL編程和MySQL數(shù)據(jù)庫的讀者而言,本書不可多得。——郭鵬 《Cassandra實戰(zhàn)》作者、專注于Hadoop&NoSQL技術(shù)研究

編輯推薦

《MySQL技術(shù)內(nèi)幕:SQL編程》系統(tǒng)深入地講解了MySQL數(shù)據(jù)庫中SQL編程的各種方法、技巧和最佳實踐,推薦DBA和開發(fā)人員參閱!暢銷書《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》姊妹篇,揭示SQL編程的奧秘,演繹SQL編程之美資深MySQL專家親自執(zhí)筆,多個技術(shù)社區(qū)和多位數(shù)據(jù)庫專家聯(lián)袂推薦。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    MySQL技術(shù)內(nèi)幕 PDF格式下載


用戶評論 (總計76條)

 
 

  •   看過他的前一本innodb的,覺得不錯,不過小弟不才,還沒看完,看到新出了SQL編程,立馬買來看看,總結(jié)的很多東西都蠻有用的,對于進(jìn)一步深入了解Mysql的執(zhí)行和優(yōu)化有很好的幫助
  •   一本了解mysql ,sql編程方面的不錯的書,好好看看。在sql方面一定有所長進(jìn)。
  •   內(nèi)容很詳細(xì),有很少一部分基于一些php的示例。前期圍繞mysql 一些特性和 數(shù)據(jù)結(jié)構(gòu),后期大部分都是性能優(yōu)化,和DBA常用的一些知識,講解基本比較到到位,也適合做一本工具書,對于開發(fā)人員部分章節(jié)也非常適合品讀。不錯的一本書,比較厚,可以花時間慢慢讀!
  •   這本書是網(wǎng)易的DBA姜承堯所著,經(jīng)驗豐富的DBA,寫的書非常通俗易懂,讓我對SQL尤其是性能方面有了深入的了解
  •   MySQL的經(jīng)典書,值到推薦
  •   結(jié)合著高性能mysql一起看,互相參考著看
  •   mysql理論講的很不錯
  •   很好的一本mysql指導(dǎo)書
  •   書的做工很好,內(nèi)容符合我的語氣:不是講解源代碼的,是數(shù)據(jù)庫優(yōu)化方面的
  •   才看了一兩章在,覺得寫的確實不錯
  •   各種技術(shù)內(nèi)幕,不過想熟悉還是要靠手指和大腦多寫多思考
  •   講解的不錯,需要有一定的基礎(chǔ)才能看懂
  •   原來是姊妹篇 還有上一本 不過單獨一本也獨立成體系 挺好的
  •   值得一看,初級入門階段
  •   不錯的書啊,就是買得太晚了
  •   還沒有開始看,書的印刷還不錯,送貨速度也比較快!
  •   包裝的挺不錯,今天下雨,送過來一點都沒濕。
  •   期待書的內(nèi)容,希望是本好書
  •   經(jīng)典書籍好好學(xué)習(xí)啊工具書
  •   剛開始學(xué)習(xí),感覺學(xué)習(xí)內(nèi)容很豐富
  •   雖說是基礎(chǔ) 但是里面也有好多東西 以前沒接觸過的 好好的學(xué)習(xí)吧
  •   很好 學(xué)習(xí)了
  •   東西很好,送貨很快。
  •   內(nèi)容相當(dāng)專業(yè)
  •   書還沒仔細(xì)看,送貨速度快!
  •   看電子書 累眼睛 還是紙質(zhì)的好
  •   還是值得好好讀一下??梢越饣?。
  •   進(jìn)階的
  •   書的質(zhì)量很好,不太適合作為入門書籍
  •   超棒的書,紙質(zhì)也很好,正好趕上打折太開心了~
  •   比較基礎(chǔ),可以作為工具書
  •   剛拿到,這次送貨比較慢,看看吧
  •   看了又長知識了
  •   書已到手,質(zhì)量很好,內(nèi)容就是我想要的!
  •   見過的紙質(zhì)最好的書,頗有收獲
  •   書紙張不錯,對熟悉其他數(shù)據(jù)庫的人,想開發(fā)mysql程序有很大的幫助
  •   內(nèi)容是我想看到的,關(guān)于怎樣優(yōu)化sql.
    只是看完有點不知其所以然
  •   方便平時的查詢
  •   這本書是很深入的講。但我只是普通的程序員,其中很多東西看的不是很懂。所以我給4分 。不是因為 這本是不好。是我不懂而已。不知道本書的姐妹篇怎么樣,一直沒有貨。
    現(xiàn)在 在研究一下redis 希望能出一些這樣的書籍。MRR那部分我還是比較感興趣的。但網(wǎng)上的資料比較少。期待作者可以寫篇博文出來。
  •   學(xué)點內(nèi)幕,加點知識籌碼
  •   書中內(nèi)容不錯,很有幫助
  •   感覺里面很多內(nèi)容都是針對有一定基礎(chǔ)的,我是邊看邊百度,而且感覺有些錯誤,不過書還是挺不錯的
  •   這本書整理來說還是很不錯。
  •   書角明顯磨損了,不影響閱讀,只是有點影響觀感,還是希望快遞溫柔點兒
  •   雖然已經(jīng)買回來好久了,但一直都還沒顧得上細(xì)看……so不能提供參考信息啦
  •   需要一定經(jīng)驗才能完全吸收!
  •   后續(xù)還有,期望中!
  •   適合有一定經(jīng)驗的人看,講的不是很細(xì)
  •   書比較薄,但是貴,內(nèi)容還可以
  •   好書,我同事讓買的,據(jù)說蠻好~
  •   正學(xué)著呢,暫時沒發(fā)現(xiàn)有何缺點。
  •   有點收獲,但也別指望太多
  •   學(xué)習(xí)mysql技術(shù)的可以研究下
  •   特殊應(yīng)用的案例比較多,但未形成系統(tǒng)性的東西。
  •   還不錯還不錯。。值得買
  •   基礎(chǔ)入門書籍,不適合有一定基礎(chǔ)的看
  •   還好,有些地方略嫌簡略還好,有些地方略嫌簡略
  •   如果你是初學(xué)者,強烈不建議看此書,里面很多知識都是需要有一定MYSQL基礎(chǔ)才能看的懂!但是如果你是想進(jìn)階的話,其實此書內(nèi)容也不是特別好!無意中在網(wǎng)上搜了一下 貌似此書網(wǎng)上都有。
  •   講了很多細(xì)節(jié),很全面,作者很有功力,初學(xué)者有難度,
  •   有點小貴,找mysql的書時看評價買的,符合我當(dāng)時買的需求。
  •   講的 清晰透徹。好好研讀吧。
  •   乍看目錄包含得內(nèi)容真豐富,如果仔細(xì)看內(nèi)容就會覺得寫得有點晦澀難懂,不接地氣,好像在捧著漢典古籍,都是文言文。翻了幾頁我以為是從外文翻譯過來的所以有些句子不通,結(jié)果一看序文是咱們中國人自己寫的。中國人用漢字都能寫得這么拐彎抹角,只能說沒有拿以人為本的精神做事情。這里面包含了很多連題設(shè)都沒闡述明白就開始解題的例子,沒有站在讀者的角度考慮問題,不能以為包含難題的書就是好書,讓別人看得費勁就是好書。老外很多大牛高手寫出來的書都是平易近人,簡單易懂的,而且也有很多深入的例子,看起來一點都不費勁,只是有些中文譯本句子不太通順。寫書,不是羅列自己的經(jīng)驗和成就,以人為本,用心站在讀者的角度上分析問題。
  •   如果是剛接觸mysql,還是不要看這本書,很深入,需要一定基礎(chǔ),實驗很詳細(xì)
  •   還行吧,初學(xué)者比較適合
  •   各方面都不錯,事務(wù)部分沒有將行級鎖和事務(wù)。
  •   這本書還是有點難度的,特別是里面用到的官方案例……有點難導(dǎo)!
  •   本書是國內(nèi)作者原創(chuàng),寫的不錯。本書涉及到許多MySQL開發(fā)方面的相對高級的話題,許多內(nèi)容看著眼熟,感覺是仿造微軟的《SQL Server技術(shù)內(nèi)幕》系列寫的,當(dāng)然是用MySQL來實現(xiàn)相應(yīng)的問題。有些問題比如“滑動訂單”在實際工作中不是很常見的需求。最后兩節(jié)講的是與開發(fā)、管理都相關(guān)的話題:索引、分區(qū)。
  •   看了一半了,蠻適合剛?cè)腴T的,很好
  •   這本書還是不錯的,是一般MySQL從初級到中級的書??赐暌院螅瑢?shù)據(jù)庫有更深入的了解。但是在第七章中,對事務(wù)的講解還是比較淺顯的,在讀這章的時候,有些疑惑,自己在網(wǎng)上查找資料,配合閱讀。還有一點就是,和之前作者的另外一篇著作《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》做對比,里面內(nèi)容和章節(jié)有很多重復(fù)的,作者說這兩部書是姐妹篇,在讀者看來,其實只要買其中的一本就... 閱讀更多
  •   總體來說講到了數(shù)據(jù)庫系統(tǒng)性能后面的一些原理,就那些對數(shù)據(jù)庫系統(tǒng)有初步認(rèn)識以及一定應(yīng)用經(jīng)歷的人來說,閱讀本書會有較大的收獲。遺憾的是,很多地方都講得不夠深入。比如,有關(guān)查詢優(yōu)化這么重要的內(nèi)容,也只是點了一些而已。
  •   發(fā)貨快,比商店便宜
  •   還好,就是桂了點
  •   MySQL技術(shù)內(nèi)幕:SQL編程
  •   mysql核心
  •   深入了解mysql很有用
  •   作者寫的東西很多
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7