注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡數(shù)據(jù)庫MySQL應用實戰(zhàn)與性能調(diào)優(yōu)

MySQL應用實戰(zhàn)與性能調(diào)優(yōu)

MySQL應用實戰(zhàn)與性能調(diào)優(yōu)

定 價:¥79.00

作 者: 張文亮 編著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787111700982 出版時間: 2022-04-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 304 字數(shù):  

內(nèi)容簡介

  MySQL是流行的關系型數(shù)據(jù)庫管理系統(tǒng)之一。書中從數(shù)據(jù)設計和數(shù)據(jù)庫的基本使用開始介紹,逐步深入一些復雜的內(nèi)容,包括連接查詢的使用、子查詢、字符串函數(shù)、數(shù)字函數(shù)、日期函數(shù)以及新版本的窗口函數(shù),還包括存儲過程、游標、創(chuàng)建高效的索引以及SQL優(yōu)化技巧等。通過大量的示例應用,系統(tǒng)地講述讀者應該掌握的知識,以及對于數(shù)據(jù)庫的優(yōu)化,其中包括MySQL的架構以及MySQL 8的新特征,也包含MySQL基準測試和性能剖析,數(shù)據(jù)庫軟硬件性能優(yōu)化,內(nèi)存優(yōu)化,復制、備份和恢復,高可用與高可擴展性,尤其對于MySQL中各種鎖機制以及MySQL的MVCC的核心原理都一一通過理論和大量的示例進行解析,以方便讀者理解。

作者簡介

暫缺《MySQL應用實戰(zhàn)與性能調(diào)優(yōu)》作者簡介

圖書目錄

前言
第1章 MySQL入門和容器化部署 1
1.1 MySQL介紹 1
1.2 MySQL 8安裝和升級 2
1.2.1 安裝前說明 2
1.2.2 在Windows上安裝MySQL 2
1.2.3 在Linux上安裝MySQL 8
1.2.4 在Docker上安裝MySQL 12
第2章 什么樣的數(shù)據(jù)庫設計才是優(yōu)秀的 17
2.1 關系型數(shù)據(jù)庫設計理論 17
2.2 連接數(shù)據(jù)庫和基本信息查詢 21
2.2.1 連接數(shù)據(jù)庫 21
2.2.2 基本信息查詢 21
2.3 數(shù)據(jù)庫和表 25
2.3.1 創(chuàng)建數(shù)據(jù)庫 26
2.3.2 創(chuàng)建表 27
2.4 數(shù)據(jù)類型和類型異常處理 28
2.4.1 數(shù)字數(shù)據(jù)類型 28
2.4.2 日期和時間數(shù)據(jù)類型 32
2.4.3 字符串數(shù)據(jù)類型 33
2.4.4 JSON數(shù)據(jù)類型 39
第3章 SQL語句全面解析和應用實戰(zhàn) 44
3.1 數(shù)據(jù)庫操作 44
3.2 數(shù)據(jù)表操作 46
3.2.1 創(chuàng)建數(shù)據(jù)表 46
3.2.2 數(shù)據(jù)表的修改與刪除 48
3.2.3 約束 49
3.3 數(shù)據(jù)查詢 50
3.4 數(shù)據(jù)插入 51
3.5 where(篩選) 52
3.6 and和or(與和或) 54
3.7 between(范圍查找) 55
3.8 distinct(去重關鍵字) 56
3.9 update(修改或更新) 56
3.10 delete(刪除) 58
3.11 like(模糊匹配) 59
3.12 order by(排序) 61
3.13 group by(分組) 62
3.14 with rollup(分組統(tǒng)計再統(tǒng)計) 63
3.15 having(分組篩選) 64
3.16 union和union all(組合查詢) 64
3.17 join(連接查詢) 67
3.17.1 inner join(內(nèi)連接) 68
3.17.2 left join(左連接) 69
3.17.3 right join(右連接) 70
3.18 in和not in(多關鍵字篩選) 71
3.19 exists和not exists(是否返回結果集) 72
3.20 復制表 73
3.21 臨時表 74
第4章 MySQL函數(shù)大全和高效率匯總統(tǒng)計實戰(zhàn) 76
4.1 MySQL字符串函數(shù) 76
4.1.1 character_length(s):返回字符串長度 76
4.1.2 concat(s1,s2,(,sn):字符串合并 77
4.1.3 format(x,n):數(shù)字格式化 77
4.1.4 lpad(s1,len,s2):字符串填充 77
4.1.5 field(s,s1,s2,():返回字符串出現(xiàn)的位置 77
4.1.6 insert(s1,x,len,s2):替換字符串 78
4.1.7 lcase(s):把字符串中的所有字母轉(zhuǎn)換為小寫字母 78
4.1.8 ucase(s):把字符串中的所有字母轉(zhuǎn)換為大寫字母 78
4.1.9 strcmp(s1,s2):比較字符串大小 78
4.1.10 replace(s,s1,s2):字符串替換 79
4.1.11 position(s1 in s):獲取子字符串在字符串中出現(xiàn)的位置 79
4.1.12 md5(s):字符串加密 79
4.1.13 inet_aton(ip):把IP地址轉(zhuǎn)換為數(shù)字 80
4.1.14 inet_ntoa (s):把數(shù)字轉(zhuǎn)換為IP地址 80
4.2 MySQL數(shù)字函數(shù) 80
4.2.1 ceil(x):返回不小于x的小整數(shù) 80
4.2.2 ceiling(x):返回不小于x的小整數(shù) 80
4.2.3 floor(x):返回不大于x的整數(shù) 81
4.2.4 round(x):返回接近x的整數(shù) 81
4.2.5 max(expression):求值 81
4.2.6 min(expression):求小值 82
4.2.7 sum(expression):求總和 82
4.2.8 avg(expression):求平均值 83
4.2.9 count(expression):求總記錄數(shù) 83
4.3 MySQL日期函數(shù) 84
4.3.1 adddate(d,n):返回指定日期加上指定天數(shù)后的日期 84
4.3.2 addtime(t,n):返回指定時間加上指定時間后的時間 84
4.3.3 curdate():返回當前日期 85
4.3.4 datediff(d1,d2):返回兩個日期相隔的天數(shù) 85
4.3.5 dayofyear(d):返回指定日期是本年的第幾天 85
4.3.6 extract(type from d):根據(jù)對應格式返回日期 85
4.3.7 now():返回當前日期和時間 86
4.3.8 quarter(d):返回日期對應的季度數(shù) 87
4.3.9 second(t):返回指定時間中的秒數(shù) 87
4.3.10 timediff(time1, time2):計算時間差 87
4.3.11 date(t):從指定日期時間中提取日期值 88
4.3.12 hour(t):返回指定時間中的小時數(shù) 88
4.3.13 time(expression):提取日期時間參數(shù)中的時間部分 88
4.3.14 time_format(t,f):根據(jù)表達式顯示時間 88
4.3.15 year(d):返回指定日期的年份 89
4.4 MySQL高級函數(shù) 89
4.4.1 cast(x as type):數(shù)據(jù)類型轉(zhuǎn)換 89
4.4.2 coalesce(expr1, (, exprn):返回個非空表達式 89
4.4.3 if(expr,v1,v2):表達式判斷 90
4.4.4 ifnull(v1,v2):null替換 90
4.4.5 isnull(expression):判斷表達式是否為null 90
4.4.6 nullif(expr1, expr2):字符串相等則返回null 91
4.4.7 last_insert_id():返回近生成的自增ID 91
4.4.8 case expression:表達式分支 92
4.5 MySQL over():窗口函數(shù)匯總分析 92
4.5.1 row _number():順序排名函數(shù) 94
4.5.2 rank():跳級排名函數(shù) 95
4.5.3 dense_rank():不跳級排名函數(shù) 96
4.5.4 lag(expr,n):前分析函數(shù),返回前n行的值 96
4.5.5 lead(expr,n):后分析函數(shù),返回后n行的值 98
4.5.6 first_value(expr):頭尾函數(shù),返回個值 98
4.5.7 last_value(expr):頭尾函數(shù),返回后一個值 99
4.5.8 nth_value(expr,n):從結果集中的第n行獲取值 101
4.5.9 ntile(n):數(shù)據(jù)集分桶 102
4.5.10 sum() over(expr):聚合求和 103
4.5.11 avg() over(expr):聚合求平均值 104
4.5.12 max() over(expr):聚合求值 104
4.5.13 min() over(expr):聚合求小值 105
4.5.14 count() over(expr):聚合總條數(shù) 105
第5章 MySQL大表快速優(yōu)化訣竅 107
5.1 分區(qū) 107
5.1.1 分區(qū)類型 108
5.1.2 范圍分區(qū) 108
5.1.3 列表分區(qū) 111
5.1.4 列分區(qū) 113
5.1.5 哈希分區(qū) 121
5.1.6 鍵分區(qū) 124
5.1.7 子分區(qū) 125
5.1.8 MySQL分區(qū)對null的處理 126
5.1.9 分區(qū)管理 132
5.1.10 分區(qū)的限制 138
5.2 視圖 142
5.3 存儲過程 145
5.3.1 存儲過程的創(chuàng)建和調(diào)用 145
5.3.2 帶參數(shù)的存儲過程 147
5.3.3 變量 150
5.3.4 注釋 151
5.3.5 存儲過程的修改和刪除 152
5.3.6 存儲過程的控制語句 152
5.4 游標 154
5.5 字符集和排序規(guī)則 157
5.5.1 MySQL中的字符集和排序規(guī)則 157
5.5.2 列字符集和排序規(guī)則 160
5.5.3 使用collate指定查詢排序規(guī)則 160
第6章 MySQL創(chuàng)建高效的索引 162
6.1 索引 162
6.2 創(chuàng)建索引的指導原則 165
6.3 B-Tree索引和哈希索引的比較 166
6.4 高效SQL分析利器的執(zhí)行計劃分析 167
6.5 高效SQL的索引檢索原理 183
6.5.1 主鍵索引 183
6.5.2 普通索引 187
6.5.3 復合索引 189
6.6 索引的使用技巧與SQL優(yōu)化實戰(zhàn) 191
6.6.1 避免回表查詢 191
6.6.2 盡量使用聯(lián)合索引 191
6.6.3 索引條件下推優(yōu)化 192
6.6.4 避免全表掃描 192
6.6.5 負向查詢不能使用索引 192
6.6.6 前導模糊查詢不能使用索引 193
6.6.7 在字段上計算不能命中索引 193
6.6.8 查詢條件類型不一致不能命中索引 193
6.6.9 明確知道只返回一條記錄可以使用limit進行限制 193
6.6.10 limit分頁優(yōu)化 193
6.6.11 使用表內(nèi)連接進行l(wèi)imit分頁優(yōu)化 194
6.6.12 union all優(yōu)化(基于MySQL 8.0+) 194
6.6.13 or優(yōu)化(基于MySQL 8.0+) 194
6.6.14 count(*)優(yōu)化 194
6.6.15 on duplicate key update優(yōu)化 195
第7章 InnoDB存儲引擎揭秘和優(yōu)化實戰(zhàn) 196
7.1 InnoDB存儲引擎實踐 198
7.2 InnoDB和ACID模型 198
7.2.1 MySQL事務處理的兩種方法 199
7.2.2 InnoDB MVCC 201
7.3 鎖機制 201
7.3.1 表級鎖 201
7.3.2 行級鎖 202
7.3.3 共享鎖 202
7.3.4 排他鎖 203
7.3.5 意向鎖 205
7.3.6 樂觀鎖 205
7.3.7 悲觀鎖 206
7.3.8 間隙鎖 206
7.3.9 記錄鎖 208
7.3.10 臨鍵鎖 208
7.3.11 死鎖 209
7.4 事務隔離級別 209
7.5 InnoDB內(nèi)存結構解析和優(yōu)化實戰(zhàn) 213
7.5.1 緩沖池原理和優(yōu)化 213
7.5.2 變更緩沖區(qū)原理與優(yōu)化 224
7.5.3 自適應哈希索引原理與配置 226
7.5.4 日志緩沖區(qū) 226
7.6 InnoDB表實戰(zhàn)調(diào)優(yōu) 227
7.6.1 優(yōu)化InnoDB表的存儲 227
7.6.2 InnoDB事務處理優(yōu)化 229
7.6.3 InnoDB只讀事務優(yōu)化 229
7.6.4 優(yōu)化InnoDB重做日志 229
7.6.5 InnoDB磁盤I/O優(yōu)化 234
7.6.6 配置InnoDB線程并發(fā)數(shù)量 234
7.6.7 配置InnoDB的I/O讀寫后臺線程數(shù)量 235
7.6.8 InnoDB的并行讀線程數(shù)量 235
7.6.9 InnoDB的I/O容量 236
第8章 MySQL基準測試數(shù)據(jù)的備份與還原 237
8.1 基準測試 237
8.1.1 Sysbench介紹 238
8.1.2 Sysbench測試實操 239
8.2 備份 243
8.3 還原 244
8.3.1 利用source命令導入數(shù)據(jù)庫 244
8.3.2 利用load data導入數(shù)據(jù) 244
8.3.3 利用mysqlimport導入數(shù)據(jù) 244
第9章 MySQL高性能架構的讀寫分離 245
9.1 讀寫分離 245
9.2 MySQL主從復制 246
9.3 MySQL主從復制架構的搭建 247
9.3.1 配置主節(jié)點 247
9.3.2 配置從節(jié)點 248
9.3.3 主從復制 249
附錄 常用函數(shù)速查表 251
A.1 MySQL字符串函數(shù) 251
A.1.1 ASCII(s):返回字符串的ASCII碼 251
A.1.2 char_length(s):返回字符串長度 251
A.1.3 character_length(s):返回字符串長度 252
A.1.4 concat(s1,s2,(,sn):字符串合并 252
A.1.5 concat_WS(x, s1,s2,(,sn):字符串合并 252
A.1.6 field(s,s1,s2,():返回字符串出現(xiàn)的位置 253
A.1.7 find_in_set(s1,s2):返回字符串的匹配位置 253
A.1.8 format(x,n):數(shù)字格式化 253
A.1.9 insert(s1,x,len,s2):替換字符串 253
A.1.10 locate(s1,s):獲取字符串出現(xiàn)的位置 254
A.1.11 lcase(s):把字符串中的所有字母轉(zhuǎn)換為小寫字母 254
A.1.12 left(s,n):返回字符串的前n個字符 254
A.1.13 lower(s):把字符串中的所有字母轉(zhuǎn)換為小寫字母 254
A.1.14 lpad(s1,len,s2):字符串填充 255
A.1.15 ltrim(s):去掉字符串開始處的空格 255
A.1.16 mid(s,n,len):從字符串的指定位置截取子字符串 255
A.1.17 replace(s,s1,s2):字符串替換 256
A.1.18 reverse(s):字符串反轉(zhuǎn) 256
A.1.19 right(s,n):返回字符串后n個字符 256
A.1.20 rpad(s1,len,s2):在字符串中填充相應字符串 256
A.1.21 position(s1 in s):獲取子字符串在字符串中出現(xiàn)的位置 257
A.1.22 repeat(s,n):字符串重復拼接 257
A.1.23 substring_index(s, s2, number):返回字符串中第n個出現(xiàn)的子字符串 257
A.1.24 trim(s):去掉字符串開始和結尾處的空格 258
A.1.25 ucase(s):把字符串中的所有字母轉(zhuǎn)換為大寫字母 258
A.1.26 rtrim(s):去掉字符串結尾處的空格 258
A.1.27 strcmp(s1,s2):比較字符串的大小 258
A.1.28 substr(s, start, length):從字符串中截取子字符串 259
A.1.29 substring(s, start, length):從字符串中截取子字符串 259
A.1.30 md5(s):字符串加密 259
A.1.31 inet_aton (ip):把IP地址轉(zhuǎn)換為數(shù)字 260
A.1.32 inet_ntoa(s):把數(shù)字轉(zhuǎn)換為IP地址 260
A.2 MySQL數(shù)字函數(shù) 260
A.2.1 abs(x):求值 260
A.2.2 sign(x):返回數(shù)字符號 260
A.2.3 acos(x):求反余弦值 261
A.2.4 asin(x):求反正弦值 261
A.2.5 atan (x):求反正切值 261
A.2.6 sin(x):求正弦值 262
A.2.7 cos(x):求余弦值 262
A.2.8 cot(x):求余切值 262
A.2.9 tan(x):求正切值 262
A.2.10 degrees(x):將弧度轉(zhuǎn)換為角度 263
A.2.11 radians(x):將角度轉(zhuǎn)換為弧度 263
A.2.12 exp(x):返回e的x次方 263
A.2.13 ceil(x):返回不小于x的小整數(shù) 264
A.2.14 ceiling(x):返回不小于x的小整數(shù) 264
A.2.15 floor(x):返回不大于x的整數(shù) 264
A.2.16 round(x):返回接近x的整數(shù) 264
A.2.17 greatest(expr1,expr2, ():返回列表中的值 265
A.2.18 least(expr1, expr2, expr3, ():返回列表中的小值 265
A.2.19 ln(x):求自然對數(shù) 265
A.2.20 log(x)或log(base, x):求對數(shù) 266
A.2.21 log10(x):求以10為底的對數(shù) 266
A.2.22 log2(x):求以2為底的對數(shù) 266
A.2.23 max(expression):求值 267
A.2.24 min(expression):求小值 267
A.2.25 sum(expression):求總和 268
A.2.26 avg(expression):求平均值 268
A.2.27 count(expression):求總記錄數(shù) 268
A.2.28 mod(x,y):求余數(shù) 269
A.2.29 pow(x,y):求x的y次方 269
A.2.30 sqrt(x):求平方根 269
A.2.31 rand():求隨機數(shù) 270
A.2.32 truncate(x,y):返回保留到小數(shù)點后n位的值 270
A.3 MySQL日期函數(shù) 270
A.3.1 adddate(d,n):返回指定日期加上指定天數(shù)后的日期 270
A.3.2 addtime(t,n):返回指定時間加上指定時間后的時間 271
A.3.3 curdate():返回當前日期 271
A.3.4 current_date():返回當前日期 271
A.3.5 current_time():返回當前時間 272
A.3.6 current_timestamp():返回當前日期和時間 272
A.3.7 curtime():返回當前時間 272
A.3.8 date(t):從指定日期時間中提取日期值 272
A.3.9 datediff(d1,d2):返回兩個日期相隔的天數(shù) 273
A.3.10 date_add(d, interval expr type):給指定日期加上一個時間段后的日期 273
A.3.11 date_format(d,f):根據(jù)表達式顯示日期 273
A.3.12 date_sub(date, interval expr type):從當前日期減去指定的時間間隔 274
A.3.13 day(d):返回日期值中的日值 274
A.3.14 dayname(d):返回指定日期是星期幾 274
A.3.15 dayofmonth(d):返回指定日期是本月的第幾天 275
A.3.16 dayofweek(d):返回指定日期是所在星期的第幾天 275
A.3.17 dayofyear(d):返回指定日期是本年的第幾天 275
A.3.18 extract (type from d):根據(jù)對應格式返回日期 275
A.3.19 from_days(n):返回元年加n天的日期 277
A.3.20 hour(t):返回指定時間中的小時數(shù) 277
A.3.21 last_day(d):返回給定日期所在月份的后一天 277
A.3.22 localtime():返回當前日期和時間 277
A.3.23 localtimestamp():返回當前日期和時間 278
A.3.24 makedate(year, day-of-year):時間組合天數(shù) 278
A.3.25 maketime(hour, minute, second):時間組合 278
A.3.26 microsecond(date):返回時間參數(shù)中的微秒數(shù) 278
A.3.27 minute(t):返回指定時間中的分鐘數(shù) 279
A.3.28 monthname(d):返回日期中的月份名稱 279
A.3.29 month(d):返回日期中的月份值 279
A.3.30

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號