MySQL 9從入門到性能優化

王英英

  • 出版商: 清華大學
  • 出版日期: 2024-09-01
  • 售價: $834
  • 貴賓價: 9.5$792
  • 語言: 簡體中文
  • ISBN: 7302671915
  • ISBN-13: 9787302671916
  • 相關分類: MySQLSQL
  • 立即出貨

  • MySQL 9從入門到性能優化-preview-1
  • MySQL 9從入門到性能優化-preview-2
  • MySQL 9從入門到性能優化-preview-3
MySQL 9從入門到性能優化-preview-1

相關主題

商品描述

"MySQL是流行的關系數據庫管理系統之一,由於其體積小、速度快、總體擁有成本低、開放源碼等特點,一般中小型企業甚至大型因特網企業的應用開發都選擇MySQL作為數據庫。《MySQL 9從入門到性能優化:視頻教學版》註重實戰操作,詳解MySQL 9數據庫的操作、運維、優化和設計方法,配套示例源碼、PPT課件、同步教學視頻、作者微信群答疑服務,幫助讀者快速掌握MySQL數據庫。 《MySQL 9從入門到性能優化:視頻教學版》共分20章,主要內容包括MySQL的安裝與配置,數據庫和數據表基本操作,數據類型和運算符,MySQL函數,查詢數據,插入、更新與刪除數據,索引的設計和使用,存儲過程和函數,視圖,MySQL觸發器,數據備份與恢復,MySQL日誌,MySQL權限與安全管理,SQL性能優化,MySQL服務器性能優化,MySQL性能監控,提升MySQL數據庫的性能,MySQL**優化實戰,企業人事管理系統數據庫設計,在線購物系統數據庫設計。 《MySQL 9從入門到性能優化:視頻教學版》適合MySQL初學者、MySQL應用開發人員、MySQL數據庫管理員和系統運維人員閱讀,同時也可以作為高等院校或高職高專院校MySQL數據庫課程的教學用書。"

目錄大綱

目    錄

 

第1章  MySQL的安裝與配置 1

1.1  什麽是MySQL 1

1.1.1  客戶端/服務器軟件 1

1.1.2  MySQL版本 2

1.2  Windows平臺下安裝與配置MySQL 2

1.2.1  安裝MySQL 2

1.2.2  配置MySQL 6

1.3  啟動服務並登錄MySQL數據庫 11

1.3.1  啟動MySQL服務 11

1.3.2  登錄MySQL數據庫 12

1.3.3  配置Path變量 13

1.4  MySQL常用的圖形化管理工具 15

1.5  Linux平臺下安裝與配置MySQL 16

1.5.1  Linux操作系統下的MySQL版本介紹 16

1.5.2  安裝和配置MySQL的RPM包 17

第2章  數據庫和數據表的基本操作 19

2.1  創建數據庫 19

2.2  刪除數據庫 20

2.3  創建數據表 21

2.3.1  創建表的語法形式 21

2.3.2  使用主鍵約束 22

2.3.3  使用外鍵約束 23

2.3.4  使用非空約束 25

2.3.5  使用唯一性約束 25

2.3.6  使用默認約束 26

2.3.7  設置表的屬性值自動增加 26

2.4  查看數據表結構 27

2.4.1  查看表基本結構的語句DESCRIBE 27

2.4.2  查看表詳細結構的語句SHOW CREATE TABLE 28

2.5  修改數據表 29

2.5.1  修改表名 29

2.5.2  修改字段的數據類型 30

2.5.3  修改字段名 31

2.5.4  添加字段 32

2.5.5  刪除字段 34

2.5.6  修改字段的排列位置 35

2.5.7  刪除表的外鍵約束 36

2.6  刪除數據表 37

2.6.1  刪除沒有被關聯的表 37

2.6.2  刪除被其他表關聯的主表 38

第3章  數據類型和運算符 40

3.1  MySQL的數據類型 40

3.1.1  整數類型 40

3.1.2  小數類型 41

3.1.3  日期與時間類型 43

3.1.4  文本字符串類型 53

3.1.5  二進制字符串類型 58

3.2  如何選擇數據類型 60

3.3  運算符 62

3.3.1  運算符概述 62

3.3.2  算術運算符 63

3.3.3  比較運算符 64

3.3.4  邏輯運算符 71

3.3.5  位運算符 73

3.3.6  運算符的優先級 76

第4章  MySQL函數 77

4.1  MySQL函數簡介 77

4.2  數學函數 77

4.2.1  絕對值函數ABS(x)和返回圓周率的函數PI() 77

4.2.2  平方根函數SQRT(x)和求餘函數MOD(x,y) 78

4.2.3  獲取整數的函數CEIL(x)、CEILING(x)和FLOOR(x) 79

4.2.4  獲取隨機數的函數RAND()和RAND(x) 79

4.2.5  函數ROUND(x)、ROUND(x,y)和TRUNCATE(x,y) 80

4.2.6  符號函數SIGN(x) 81

4.2.7  冪運算函數POW(x,y)、POWER(x,y)和EXP(x) 81

4.2.8  對數運算函數LOG(x)和LOG10(x) 82

4.2.9  角度與弧度相互轉換的函數RADIANS(x)和DEGREES(x) 82

4.2.10  正弦函數SIN(x)和反正弦函數ASIN(x) 83

4.2.11  餘弦函數COS(x)和反餘弦函數ACOS(x) 83

4.2.12  正切函數、反正切函數和餘切函數 84

4.3  字符串函數 85

4.3.1  計算字符串的字符數的函數和計算字符串長度的函數 85

4.3.2  合並字符串函數CONCAT(s1,s2,...)、CONCAT_WS(x,s1,s2,...) 85

4.3.3  替換字符串的函數INSERT(s1,x,len,s2) 86

4.3.4  字母大小寫轉換函數 87

4.3.5  獲取指定長度的字符串的函數LEFT(s,n)和RIGHT(s,n) 87

4.3.6  填充字符串的函數LPAD(s1,len,s2)和RPAD(s1,len,s2) 88

4.3.7  刪除空格的函數LTRIM(s)、RTRIM(s)和TRIM(s) 88

4.3.8  刪除指定字符串的函數TRIM(s1 FROM s) 89

4.3.9  重復生成字符串的函數REPEAT(s,n) 90

4.3.10  空格函數SPACE(n)和替換函數REPLACE(s,s1,s2) 90

4.3.11  比較字符串大小的函數STRCMP(s1,s2) 91

4.3.12  獲取子串的函數SUBSTRING(s,n,len)和MID(s,n,len) 91

4.3.13  匹配子字符串開始位置的函數 92

4.3.14  字符串逆序的函數REVERSE(s) 92

4.3.15  返回指定位置的字符串的函數 92

4.3.16  返回指定字符串位置的函數FIELD(s,s1,s2,...,sn) 93

4.3.17  返回子字符串位置的函數FIND_IN_SET(s1,s2) 93

4.3.18  選取字符串的函數MAKE_SET(x,s1,s2,...,sn) 94

4.4  日期和時間函數 94

4.4.1  獲取當前日期的函數和獲取當前時間的函數 94

4.4.2  獲取當前日期和時間的函數 95

4.4.3  UNIX時間戳函數 95

4.4.4  返回UTC日期的函數和返回UTC時間的函數 96

4.4.5  獲取月份的函數MONTH(date)和MONTHNAME(date) 97

 

4.4.6  獲取星期的函數DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d) 97

4.4.7  獲取星期數的函數WEEK(d)和WEEKOFYEAR(d) 98

4.4.8  獲取天數的函數DAYOFYEAR(d)和DAYOFMONTH(d) 99

4.4.9  獲取年份、季度、小時、分鐘和秒鐘的函數 99

4.4.10  獲取日期的指定值的函數EXTRACT(type FROM date) 100

4.4.11  時間和秒數轉換的函數 101

4.4.12  計算日期和時間的函數 101

4.4.13  將日期和時間格式化的函數 104

4.5  條件判斷函數 107

4.5.1  IF()函數 107

4.5.2  IFNULL()函數 107

4.5.3  CASE()函數 108

4.6  系統信息函數 109

4.6.1  獲取MySQL版本號、連接數和數據庫名的函數 109

4.6.2  獲取用戶名的函數 110

4.6.3  獲取字符串的字符集和排序方式的函數 111

4.6.4  獲取最後一個自動生成的ID值的函數 111

4.7  加密函數 113

4.7.1  加密函數MD5(str) 113

4.7.2  加密函數SHA(str) 113

4.7.3  加密函數SHA2

(str, hash_length) 114

4.8  其他函數 114

4.8.1  格式化函數FORMAT(x,n) 114

4.8.2  不同進制的數字進行轉換的函數 115

4.8.3  IP地址與數字相互轉換的函數 115

4.8.4  加鎖函數和解鎖函數 116

4.8.5  重復執行指定操作的函數 116

4.8.6  改變字符集的函數 117

4.8.7  改變量據類型的函數 118

4.9  窗口函數 118

第5章  查詢數據 120

5.1  基本查詢語句 120

5.2  單表查詢 122

5.2.1  查詢所有字段 122

5.2.2  查詢指定字段 123

5.2.3  查詢指定記錄 125

5.2.4  帶IN關鍵字的查詢 126

5.2.5  帶BETWEEN AND的範圍查詢 127

5.2.6  帶LIKE的字符匹配查詢 128

5.2.7  查詢空值 130

5.2.8  帶AND的多條件查詢 131

5.2.9  帶OR的多條件查詢 132

5.2.10  查詢結果不重復 133

5.2.11  對查詢結果排序 134

5.2.12  分組查詢 138

5.2.13  使用LIMIT限制查詢結果的數量 142

5.3  使用聚合函數查詢 143

5.3.1  COUNT()函數 144

5.3.2  SUM()函數 145

5.3.3  AVG()函數 145

5.3.4  MAX()函數 146

5.3.5  MIN()函數 147

5.4  連接查詢 148

5.4.1  內連接查詢 148

5.4.2  外連接查詢 151

5.4.3  復合條件連接查詢 153

5.5  子查詢 154

5.5.1  帶ANY、SOME關鍵字的子查詢 154

5.5.2  帶ALL關鍵字的子查詢 155

5.5.3  帶EXISTS關鍵字的子查詢 155

5.5.4  帶IN關鍵字的子查詢 156

5.5.5  帶比較運算符的子查詢 158

5.6  合並查詢結果 159

5.7  為表和字段取別名 162

5.7.1  為表取別名 162

5.7.2  為字段取別名 163

5.8  使用正則表達式查詢 164

5.8.1  查詢以特定字符或字符串開頭的記錄 165

5.8.2  查詢以特定字符或字符串結尾的記錄 166

5.8.3  用符號“.”來替代字符串中的任意一個字符 166

5.8.4  使用“*”和“+”來匹配多個字符 167

5.8.5  匹配指定字符串 167

5.8.6  匹配指定字符中的任意一個 168

5.8.7  匹配指定字符以外的字符 169

5.8.8  使用{n,}或者{n,m}來指定

字符串連續出現的次數 170

5.9  通用表表達式 171

第6章  插入、更新與刪除數據 175

6.1  插入數據 175

6.1.1  為表的所有字段插入數據 175

6.1.2  為表的指定字段插入數據 177

6.1.3  同時插入多條數據 178

6.1.4  將查詢結果插入表中 180

6.2  更新數據 181

6.3  刪除數據 183

6.4  為表增加計算列 185

6.5  DDL的原子化 186

第7章  索引的設計和使用 188

7.1  索引簡介 188

7.1.1  索引的含義和特點 188

7.1.2  索引的分類 189

7.1.3  索引的設計原則 190

7.2  創建索引 190

7.2.1  創建表的時候創建索引 190

7.2.2  在已經存在的表上創建索引 196

7.3  刪除索引 202

7.4  使用降序索引 204

第8章  存儲過程和存儲函數 207

8.1  創建存儲過程和存儲函數 207

8.1.1  創建存儲過程 207

8.1.2  創建存儲函數 209

8.1.3  變量的使用 210

8.1.4  定義條件和處理程序 212

8.1.5  光標的使用 214

8.1.6  流程控制的使用 216

8.2  調用存儲過程和存儲函數 220

8.2.1  調用存儲過程 220

8.2.2  調用存儲函數 221

8.3  查看存儲過程和存儲函數 221

8.3.1  使用SHOW STATUS語句查看存儲過程和存儲函數的狀態 222

8.3.2  使用SHOW CREATE語句查看存儲過程和存儲函數的定義 222

8.3.3  從information_schema.Routines

表中查看存儲過程和存儲函數的信息 223

8.4  修改存儲過程和存儲函數 224

8.5  刪除存儲過程和存儲函數 226

8.6  全局變量的持久化 226

第9章  視圖 228

9.1  視圖概述 228

9.1.1  視圖的含義 228

9.1.2  視圖的作用 229

9.2  創建視圖 229

9.2.1  創建視圖的語法形式 230

9.2.2  在單表上創建視圖 230

9.2.3  在多表上創建視圖 231

9.3  查看視圖 232

9.3.1  使用DESCRIBE語句查看視圖基本信息 232

9.3.2  使用SHOW TABLE STATUS語句查看視圖基本信息 232

9.3.3  使用SHOW CREATE VIEW語句查看視圖詳細信息 234

9.3.4  在views表中查看視圖詳細信息 234

9.4  修改視圖 235

9.4.1  使用CREATE OR REPLACE 

VIEW語句修改視圖 235

9.4.2  使用ALTER語句修改視圖 236

9.5  更新視圖 237

9.6  刪除視圖 239

第10章  MySQL觸發器 241

10.1  創建觸發器 241

10.1.1  創建只有一個執行語句的觸發器 241

10.1.2  創建有多個執行語句的觸發器 242

10.2  查看觸發器 244

10.2.1  利用SHOW TRIGGERS語句查看觸發器信息 244

10.2.2  在triggers表中查看觸發器信息 246

10.3  觸發器的使用 247

10.4  刪除觸發器 248

第11章  數據備份與恢復 249

11.1  數據備份 249

11.1.1  使用mysqldump命令備份數據 249

11.1.2  直接復制整個數據庫目錄 254

11.1.3  使用MySQLhotcopy工具快速備份 255

11.2  數據恢復 255

11.2.1  使用mysql命令恢復數據 256

11.2.2  直接復制到數據庫目錄 256

11.2.3  mysqlhotcopy快速恢復 257

11.3  數據庫遷移 257

11.3.1  相同版本的MySQL數據庫之間的遷移 257

11.3.2  不同版本的MySQL數據庫之間的遷移 258

11.3.3  不同數據庫之間的遷移 258

11.4  數據的導出和導入 259

11.4.1  使用SELECT...INTO OUTFILE導出文本文件 259

11.4.2  使用mysqldump命令導出文本文件 262

11.4.3  使用mysql命令導出文本文件 265

11.4.4  使用LOAD DATA INFILE方式導入文本文件 267

11.4.5  使用mysqlimport命令導入文本文件 269

第12章  MySQL日誌 272

12.1  日誌簡介 272

12.2  二進制日誌 273

12.2.1  啟動和設置二進制日誌 273

12.2.2  查看二進制日誌 274

12.2.3  刪除二進制日誌 276

12.2.4  使用二進制日誌恢復數據庫 277

12.2.5  暫時停止二進制日誌功能 278

12.3  錯誤日誌 278

12.3.1  啟動和設置錯誤日誌 278

12.3.2  查看錯誤日誌 279

12.3.3  刪除錯誤日誌 280

12.4  通用查詢日誌 280

12.4.1  啟動通用查詢日誌 280

12.4.2  查看通用查詢日誌 281

12.4.3  刪除通用查詢日誌 281

12.5  慢查詢日誌 282

12.5.1  啟動和設置慢查詢日誌 282

12.5.2  查看慢查詢日誌 282

12.5.3  刪除慢查詢日誌 283

第13章  MySQL權限與安全管理 284

13.1  權限表 284

13.1.1  user表 284

13.1.2  db表 287

13.1.3  tables_priv表和

columns_priv表 288

13.1.4  procs_priv表 289

13.2  賬戶管理 290

13.2.1  登錄和退出MySQL服務器 290

13.2.2  新建普通用戶 291

13.2.3  刪除普通用戶 293

13.2.4  root用戶修改普通用戶密碼 294

13.3  權限管理 295

13.3.1  MySQL的各種權限 296

13.3.2  授權 298

13.3.3  收回權限 299

13.3.4  查看權限 300

13.4  訪問控制 301

13.4.1  連接核實階段 301

13.4.2  請求核實階段 301

13.5  提升安全性 302

13.5.1  密碼到期更換策略 302

13.5.2  安全模式 304

13.6  管理角色 305

第14章  MySQL性能優化 307

14.1  優化簡介 307

14.2  優化查詢 308

14.2.1  分析查詢語句 308

14.2.2  索引對查詢速度的影響 311

14.2.3  使用索引查詢 312

14.2.4  優化子查詢 315

14.3  優化數據庫結構 315

14.3.1  將字段很多的表分解成多張表 315

14.3.2  增加中間表 317

14.3.3  增加冗餘字段 318

14.3.4  優化插入記錄的速度 318

14.3.5  分析表、檢查表和優化表 320

14.4  優化臨時表性能 322

14.5  創建全局通用表空間 324

第15章  MySQL服務器性能優化 325

15.1  優化MySQL服務器 325

15.1.1  優化服務器硬件 325

15.1.2  優化MySQL的參數 326

15.2  影響MySQL服務器性能的重要參數 327

15.2.1  查看性能參數的方法 327

15.2.2  key_buffer_size的設置 331

15.2.3  內存參數的設置 334

15.2.4  日誌和事務參數的設置 335

15.2.5  存儲和I/O相關參數的設置 337

15.2.6  其他重要參數的設置 338

15.3  MySQL日誌設置優化 339

15.4  MySQL I/O設置優化 341

15.5  MySQL並發設置優化 343

15.6  服務器語句超時處理 344

15.7  線程和臨時表的優化 344

15.7.1  線程的優化 344

15.7.2  臨時表的優化 345

15.8  增加資源組 346

第16章  MySQL性能監控 348

16.1  監控系統的基本方法 348

16.1.1  ps命令 348

16.1.2  top命令 349

16.1.3  vmstat命令 351

16.1.4  mytop命令 352

16.1.5  sysstat工具 354

16.2  開源監控利器Nagios實戰 359

16.2.1  安裝Nagios之前的準備工作 359

16.2.2  安裝Nagios主程序 361

16.2.3  整合Nagios到Apache服務 362

16.2.4  安裝Nagios插件包 365

16.2.5  監控服務器的CPU、負載、磁盤I/O使用情況 367

16.2.6  配置Nagios監控MySQL服務器 371

16.3  MySQL監控利器Cacti實戰 373

16.3.1  Cacti工具的安裝 373

16.3.2  Cacti監控MySQL服務器 378

第17章  提升MySQL數據庫的性能 384

17.1  默認字符集改為utf8mb4 384

17.2  自增變量的持久化 385

17.3  GROUP BY不再隱式排序 387

17.4  統計直方圖 389

17.4.1  直方圖的優點 389

17.4.2  直方圖的基本操作 390

17.5  日誌分類更詳細 391

17.6  支持不可見索引 392

17.7  支持JSON類型 393

17.8  全文索引的加強 396

17.9  動態修改InnoDB緩沖池的大小 397

17.10  表空間數據加密 399

17.11  跳過鎖等待 400

17.12  MySQL 9.0新特性1——支持

將JSON輸出保存到用戶變量 400

17.13  MySQL 9.0新特性2——支持準備語句 401

17.14  MySQL 9.0新特性3——支持

面向AI的向量存儲 402

第18章  MySQL終極優化實戰 404

18.1  選擇合適的存儲引擎 404

18.2  通過分區表提升MySQL執行效率 408

18.2.1  認識分區表 408

18.2.2  RANGE分區 408

18.2.3  LIST分區 410

18.2.4  HASH分區 411

18.2.5  線性HASH分區 411

18.2.6  KEY分區 413

18.2.7  復合分區 413

18.3  優化數據表的鎖 415

18.3.1  MyISAM表級鎖優化建議 415

18.3.2  InnoDB行級鎖優化建議 416

18.4  優化事務控制 416

第19章  企業人事管理系統數據庫設計 421

19.1  需求分析 421

19.2  系統功能結構 421

19.3  數據庫設計 422

19.3.1  數據庫實體E-R圖 422

19.3.2  數據庫表的設計 425

19.4  使用MySQL Workbench創建數據表 428

19.4.1  創建數據庫連接 428

19.4.2  創建新的數據庫 429

19.4.3  創建數據表 430

第20章  在線購物系統數據庫設計 433

20.1  系統分析 433

20.1.1  系統總體設計 433

20.1.2  系統界面設計 433

20.2  系統主要功能 434

20.3  數據庫與數據表設計 435

20.3.1  數據庫實體E-R圖 435

20.3.2  數據庫和數據表分析 436

20.4  使用MySQL Workbench數據建模 438

20.4.1  建立E-R模型 438

20.4.2  導入E-R模型 442