深入淺出MySQL資料庫開發、最佳化與管理維護

深入淺出MySQL資料庫開發、最佳化與管理維護

本書從資料庫的基礎、開發、最佳化、管理維護4個方面對MySQL進行了詳細的介紹,其中每一部分都獨立成篇。基礎篇內容包括MySQL的安裝與配置、SQL基礎。開發篇內容包括表類型(存儲引擎)的選擇、選擇合適的數據類型、字元集、索引的設計和使用、視圖、存儲過程和函式、SQLMode及相關問題等。最佳化篇內容包括常用SQL技巧和常見問題、SQL最佳化、最佳化資料庫對象、鎖問題、最佳化MySQLServer、磁碟I/O問題、套用最佳化等。管理維護篇包括MySQL高級安裝和升級、MySQL許可權與安全、MySQL複製、MySQLCluster、MySQL常見問題和套用技巧等。

基本介紹

  • 書名:深入淺出MySQL資料庫開發、最佳化與管理維護
  • 作者:唐漢明 蘭麗華
  • ISBN:9787115175625
  • 類別:資料教材
  • 定價:59.00 元
  • 出版社人民郵電出版社
  • 出版時間:2008
編輯推薦,作者簡介,目錄,

編輯推薦

《深入淺出MySQL資料庫開發、最佳化與管理維護》的作者都是MySQL方面的資深DBA。《深入淺出MySQL資料庫開發、最佳化與管理維護》不但融入了他們豐富的工作經驗和多年的使用心得,還提供了大量來自工作現場的實例,具有很強的實戰性和可操作性。
《深入淺出MySQL資料庫開發、最佳化與管理維護》適用於資料庫管理人員、資料庫開發人員、系統維護人員、資料庫初學者及其他資料庫從業人員,也可以作為大中專院校相關專業師生的參考用書和相關培訓機構的培訓教材。

作者簡介

唐漢明,網易公司技術部DBA組經理。2000年加入網易公司,歷任技術部高級DBA、軟體開發組經理、DBA級經理等職位,負責多個大型核心資料庫的管理維護,並作為核心成員參加了許多重要項目的設計實施,在資料庫開發及管理維護等方面具有豐富的經驗。

目錄

第1部分 基礎篇
第1章 MySQL的安裝與配置 3
1.1 MySQL的下載 3
1.1.1 在Windows平台下下載MySQL 4
1.1.2 在Linux平台下下載MySQL 4
1.2 MySQL的安裝 7
1.2.1 在Windows平台下安裝MySQL 7
1.2.2 在Linux平台下安裝MySQL 11
1.3 MySQL的配置 12
1.3.1 Windows平台下配置MySQL 12
1.3.2 Linux平台下配置MySQL 20
1.4 啟動和關閉MySQL服務 20
1.4.1 在Windows平台下啟動和關閉MySQL服務 21
1.4.2 在Linux平台下啟動和關閉MySQL服務 22
1.5 小結 23
第2章 SQL基礎 25
2.1 SQL簡介 25
2.2 (My)SQL使用入門 25
2.2.1 SQL分類 25
2.2.2 DDL語句 26
2.2.3 DML語句 35
2.2.4 DCL語句 51
2.3 幫助的使用 52
2.3.1 按照層次看幫助 53
2.3.2 快速查閱幫助 54
2.3.3 常用的網路資源 55
2.4 小結 55
第3章 MySQL支持的數據類型 57
3.1 數值類型 57
3.2 日期時間類型 64
3.3 字元串類型 71
3.3.1 CHAR和VARCHAR類型 72
3.3.2 BINARY和VARBINARY類型 72
3.3.3 ENUM類型 73
3.3.4 SET類型 74
3.4 小結 74
第4章 MySQL中的運算符 77
4.1 算術運算符 77
4.2 比較運算符 78
4.3 邏輯運算符 82
4.4 位運算符 83
4.5 運算符的優先權 85
4.6 小結 86
第5章 常用函式 87
5.1 字元串函式 87
5.2 數值函式 90
5.3 日期和時間函式 93
5.4 流程函式 97
5.5 其他常用函式 100
5.6 小結 103
第6章 圖形化工具的使用 105
6.1 MySQLAdministrator 105
6.1.1 連線管理 106
6.1.2 健康檢查 107
6.1.3 備份管理 108
6.1.4 Catalogs 109
6.2 MySQLQueryBrower 110
6.3 phpMyAdmin 111
6.3.1 資料庫管理 112
6.3.2 資料庫對象管理 113
6.3.3 許可權管理 113
6.3.4 導入導出數據 114
6.4 小結 116
第2部分 開發篇
第3部分 最佳化篇
第4部分 管理維護篇
……
第2部分 開發篇
第7章 表類型(存儲引擎)的選擇 
7.1 MySQL存儲引擎概述 
7.2 各種存儲引擎的特性 
7.2.1 MyISAM 
7.2.2 InnoDB 
7.2.3 MEMORY 
7.2.4 MERGE 
7.3 如何選擇合適的存儲引擎 
7.4 小結 
第8章 選擇合適的數據類型 
8.1 CHAR與VARCHAR 
8.2 TEXT與BLOB 
8.3 浮點數與定點數 
8.4 日期類型選擇 
8.5 小結 
第9章 字元集 
9.1 字元集概述 
9.2 Unicode簡述 
9.3 漢字及一些常見字元集 
9.4 怎樣選擇合適的字元集 
9.5 MySQL支持的字元集簡介 
9.6 MySQL字元集的設定 
9.6.1 伺服器字元集和校對規則 
9.6.2 資料庫字元集和校對規則 
9.6.3 表字元集和校對規則 
9.6.4 列字元集和校對規則 
9.6.5 連線字元集和校對規則 
9.7 字元集的修改步驟 
9.8 小結 
第10章 索引的設計和使用 
10.1 索引概述 
10.2 設計索引的原則 
10.3 BTREE索引與HASH索引 
10.4 小結 
第11章 視圖 
11.1 什麼是視圖 
11.2 視圖操作 
11.2.1 創建或者修改視圖 
11.2.2 刪除視圖 
11.2.3 查看視圖 
11.3 小結 
第12章 存儲過程和函式 
12.1 什麼是存儲過程和函式 
12.2 存儲過程和函式的相關操作 
12.2.1 創建、修改存儲過程或者函式 
12.2.2 刪除存儲過程或者函式 
12.2.3 查看存儲過程或者函式 
12.2.4 變數的使用 
12.2.5 定義條件和處理 
12.2.6 游標的使用 
12.2.7 流程控制 
12.3 小結 
第13章 觸發器 
13.1 創建觸發器 
13.2 刪除觸發器 
13.3 查看觸發器 
13.4 觸發器的使用 
13.5 小結 
第14章 事務控制和鎖定語句 
14.1 LOCK TABLE和UNLOCK TABLE 
14.2 事務控制 
14.3 分散式事務的使用 
14.3.1 分散式事務的原理 
14.3.2 分散式事務的語法 
14.3.3 存在的問題 
14.4 小結 
第15章 SQL中的安全問題 
15.1 SQL注入簡介 
15.2 套用開發中可以採取的應對措施 
15.2.1 PrepareStatement+Bind-variable 
15.2.2 使用應用程式提供的轉換函式 
15.2.3 自己定義函式進行校驗 
15.3 小結 
第16章 SQL Mode及相關問題 
16.1 MySQL SQL Mode簡介 
16.2 常用的SQL Mode 
16.3 SQL Mode在遷移中如何使用 
16.4 小結 
第3部分 最佳化篇
第17章 常用SQL技巧和常見問題 
17.1 正則表達式的使用 
17.2 巧用RAND()提取隨機行 
17.3 利用GROUP BY的WITH ROLLUP子句做統計 
17.4 用BIT GROUP FUNCTIONS做統計 
17.5 資料庫名、表名大小寫問題 
17.6 使用外鍵需要注意的問題 
17.7 小結 
第18章 SQL最佳化 
18.1 最佳化SQL語句的一般步驟 
18.1.1 通過show status命令了解各種SQL的執行頻率 
18.1.2 定位執行效率較低的SQL語句 
18.1.3 通過EXPLAIN分析低效SQL的執行計畫 
18.1.4 確定問題並採取相應的最佳化措施 
18.2 索引問題 
18.2.1 索引的存儲分類 
18.2.2 MySQL如何使用索引 
18.2.3 查看索引使用情況 
18.3 兩個簡單實用的最佳化方法 
18.3.1 定期分析表和檢查表 
18.3.2 定期最佳化表 
18.4 常用SQL的最佳化 
18.4.1 大批量插入數據 
18.4.2 最佳化INSERT語句 
18.4.3 最佳化GROUP BY語句 
18.4.4 最佳化ORDER BY語句 
18.4.5 最佳化嵌套查詢 
18.4.6 MySQL如何最佳化OR條件 
18.4.7 使用SQL提示 
18.5 小結 
第19章 最佳化資料庫對象 
19.1 最佳化表的數據類型 
19.2 通過拆分提高表的訪問效率 
19.3 逆規範化 
19.4 使用中間表提高統計查詢速度 
19.5 小結 
第20章 鎖問題 
20.1 MySQL鎖概述 
20.2 MyISAM表鎖 
20.2.1 查詢表級鎖爭用情況 
20.2.2 MySQL表級鎖的鎖模式 
20.2.3 如何加表鎖 
20.2.4 並發插入(Concurrent Inserts) 
20.2.5 MyISAM的鎖調度 
20.3 InnoDB鎖問題 
20.3.1 背景知識 
20.3.2 獲取InnoDB行鎖爭用情況 
20.3.3 nnoDB的行鎖模式及加鎖方法 
20.3.4 InnoDB行鎖實現方式 
20.3.5 間隙鎖(Next-Key鎖) 
20.3.6 恢復和複製的需要,對InnoDB鎖機制的影響 
20.3.7 InnoDB在不同隔離級別下的一致性讀及鎖的差異 
20.3.8 什麼時候使用表鎖 
20.3.9 關於死鎖 
20.4 小結 
第21章 最佳化MySQL Server 
21.1 查看MySQL Server參數 
21.2 影響MySQL性能的重要參數 
21.2.1 key_buffer_size的設定 
21.2.2 table_cache的設定 
21.2.3 innodb_buffer_pool_size的設定 
21.2.4 innodb_flush_log_at_trx_commit的設定 
21.2.5 innodb_additional_mem_pool_size的設定 
21.2.6 innodb_lock_wait_timeout的設定 
21.2.7 innodb_support_xa的設定 
21.2.8 innodb_log_buffer_size的設定 
21.2.9 innodb_log_file_size的設定 
21.3 小結 
第22章 磁碟I/O問題 
22.1 使用磁碟陣列 
22.1.1 常見RAID級別及其特性 
22.1.2 如何選擇RAID級別 
22.1.3 虛擬檔案卷或軟RAID 
22.2 使用Symbolic Links分布I/O 
22.3 禁止作業系統更新檔案的atime屬性 
22.4 用裸設備(Raw Device)存放InnoDB的共享表空間 
22.5 小結 
第23章 套用最佳化 
23.1 使用連線池 
23.2 減少對MySQL的訪問 
23.2.1 避免對同一數據做重複檢索 
23.2.2 使用查詢快取 
23.2.3 增加CACHE層 
23.3 負載均衡 
23.3.1 利用MySQL複製分流查詢操作 
23.3.2 採用分散式資料庫架構 
23.4 其他最佳化措施 
23.5 小結 
第4部分 管理維護篇
第24章 MySQL高級安裝和升級 
24.1 Linux/UNIX平台下的安裝 
24.1.1 安裝包比較 
24.1.2 安裝RPM包 
24.1.3 安裝二進制包 
24.1.4 安裝源碼包 
24.1.5 參數設定方法 
24.2 源碼包安裝的性能考慮 
24.2.1 去掉不需要的模組 
24.2.2 只選擇要使用的字元集 
24.2.3 使用靜態編譯以提高性能 
24.3 升級MySQL 
24.4 MySQL降級 
24.5 小結 
第25章 MySQL中的常用工具 
25.1 mysql(客戶端連線工具) 
25.1.1 連線選項 
25.1.2 客戶端字元集選項 
25.1.3 執行選項 
25.1.4 格式化選項 
25.1.5 錯誤處理選項 
25.2 myisampack(MyISAM表壓縮工具) 
25.3 mysqladmin(MySQL管理工具) 
25.4 mysqlbinlog(日誌管理工具) 
25.5 mysqlcheck(MyISAM表維護工具) 
25.6 mysqldump(數據導出工具) 
25.7 mysqlhotcopy(MyISAM表熱備份工具) 
25.8 mysqlimport(數據導入工具) 
25.9 mysqlshow(資料庫對象查看工具) 
25.10 perror(錯誤代碼查看工具) 
25.11 replace(文本替換工具) 
25.12 小結 
第26章 MySQL日誌 
26.1 錯誤日誌 
26.2 二進制日誌 
26.2.1 日誌的位置和格式 
26.2.2 日誌的讀取 
26.2.3 日誌的刪除 
26.2.4 其他選項 
26.3 查詢日誌 
26.3.1 日誌的位置和格式 
26.3.2 日誌的讀取 
26.4 慢查詢日誌 
26.4.1 檔案位置和格式 
26.4.2 日誌的讀取 
26.4.3 其他選項 
26.5 小結 
第27章 備份與恢復 
27.1 備份/恢復策略 
27.2 邏輯備份和恢復 
27.2.1 備份 
27.2.2 完全恢復 
27.2.3 基於時間點恢復 
27.2.4 基於位置恢復 
27.3 物理備份和恢復 
27.3.1 冷備份 
27.3.2 熱備份 
27.4 表的導入導出 
27.4.1 導出 
27.4.2 導入 
27.5 小結 
第28章 MySQL許可權與安全 
28.1 MySQL許可權管理 
28.1.1 許可權系統的工作原理 
28.1.2 許可權表的存取 
28.1.3 賬號管理 
28.2 MySQL安全問題 
28.2.1 作業系統相關的安全問題 
28.2.2 資料庫相關的安全問題 
28.3 其他安全設定選項 
28.3.1 old-passwords 
28.3.2 safe-user-create 
28.3.3 secure-auth 
28.3.4 skip-grant-tables 
28.3.5 skip-network 
28.3.6 skip-show-database 
28.4 小結 
第29章 MySQL複製 
29.1 安裝配置 
29.2 主要複製啟動選項 
29.2.1 log-slave-updates 
29.2.2 master-connect-retry 
29.2.3 read-only 
29.2.4 指定複製的資料庫或者表 
29.2.5 slave-skip-errors 
29.3 日常管理維護 
29.3.1 查看從伺服器狀態 
29.3.2 主從伺服器同步維護 
29.3.3 從伺服器複製出錯的處理 
29.3.4 log event entry exceeded max_allowed_packet的處理 
29.3.5 多主複製時的自增長變數衝突問題 
29.3.6 查看從伺服器的複製進度 
29.4 切換主從伺服器 
29.5 小結 
第30章 MySQL Cluster 
30.1 MySQL Cluster架構 
30.2 MySQL Cluster的配置 
30.2.1 MySQL Cluster的版本支持 
30.2.2 管理節點配置步驟 
30.2.3 SQL節點和數據節點的配置 
30.3 開始使用Cluster 
30.3.1 Cluster的啟動 
30.3.2 Cluster的測試 
30.3.3 Cluster的關閉 
30.4 維護Cluster 
30.4.1 數據備份 
30.4.2 數據恢復 
30.4.3 日誌管理 
30.5 小結 
第31章 MySQL常見問題和套用技巧 
31.1 忘記MySQL的root密碼 
31.2 如何處理MyISAM存儲引擎的表損壞 
31.2.1 方法一 
31.2.2 方法二 
31.3 MyISAM表超過4GB無法訪問的問題 
31.4 數據目錄磁碟空間不足的問題 
31.4.1 對於MyISAM存儲引擎的表 
31.4.2 對於InnoDB存儲引擎的表 
31.5 DNS反向解析的問題 
31.6 mysql.sock丟失後如何連線資料庫 
31.7 同一台伺服器運行多個MySQL資料庫 
31.8 客戶端怎么訪問區域網路資料庫 
31.9 小結 

相關詞條

熱門詞條

聯絡我們