【資料分析師_02_SQL+MySQL】030_MySQL的資料備份和效能管理(MYSQLDUMP,MYSQLHOTCOPY,INDEX,EXPLAIN)

Lyun911發表於2020-12-31

1 概述

1.1 資料備份

像所有資料一樣,MySQL的資料也必須經常備份。由於MySQL資料庫是基於磁碟的檔案,普通的備份系統和例程就能備份MySQL的資料。但是,由於這些檔案總是處於開啟和使用狀態,普通的檔案副本備份不一定總是有效。

  • 使用命令列實用程式 mysqldump 轉儲所有資料庫內容到某個外部檔案。在進行常規備份前這個實用程式應該正常執行,以便能正確地備份轉儲檔案。
  • 可用命令列實用程式 mysqlhotcopy 從一個資料庫複製所有資料(並非所有資料庫引擎都支援這個實用程式)。
  • 可以使用MySQL的 BACKUP TABLESELECT INTO OUTFILE 轉儲所有資料到某個外部檔案。

1.2 效能管理(索引 Index)

資料庫工作人員把他們工作中的相當一部份時間花在了效能調整上、試驗改善DBMS效能。

  • 在診斷應用的滯緩現象和效能問題時,效能不良的資料庫(以及資料庫查詢)通常是最常見的禍因。
  • 利用索引 Index 可以大幅改善查詢時候的效能問題。
  • 利用一些作業系統的引數也可以提供資料訪問的效能。
  • 使用 Explain 語句讓MySQL解釋它將如何執行一條SELECT語句。
  • 一般來說,儲存過程執行得比一條一條地執行其中的各條MySQL語句快

2 資料備份

MySQL中自帶了 mysqldump功能,可以以此功能進行資料備份

2.1 利用 NAVICAT備份

注:右鍵可以檢視備份位置
在這裡插入圖片描述

2.2 利用 CMD備份

2.2.1 備份一個資料庫

d:\mysql\bin>mysqldump.exe -h 127.0.0.1 -p 3306 -uroot -p --database erp > d:\mysql\create_db_1.sql
# 執行程式mysqldump.exe -h 本機 -p port是3306 登陸root賬戶 -p --選擇erp資料庫進行備份 > 備份位置\備份檔案的名稱

2.2.2 備份多個表

d:\mysql\bin>mysqldump.exe -h 127.0.0.1 -p 3306 -uroot -p erp orders> d:\mysql\create_orders.sql
# 執行程式mysqldump.exe -h 本機 -p port是3306 登陸root賬戶 -p --選擇erp資料庫中的orders表進行備份 > 備份位置\備份檔案的名稱

2.2.3 備份多個資料庫

d:\mysql\bin>mysqldump.exe -h 127.0.0.1 -p 3306 -uroot -p --database erp test > d:\mysql\create_db_2.sql
# 執行程式mysqldump.exe -h 本機 -p port是3306 登陸root賬戶 -p --選擇erp和test資料庫進行備份 > 備份位置\備份檔案的名稱

2.2.4 備份所有資料庫

d:\mysql\bin>mysqldump.exe -h 127.0.0.1 -p 3306 -uroot -p --all-database d:\mysql\create_db_all.sql
# 執行程式mysqldump.exe -h 本機 -p port是3306 登陸root賬戶 -p --選擇所有資料庫進行備份 > 備份位置\備份檔案的名稱

2.3 備份空資料庫(測試用)

d:\mysql\bin>mysqldump.exe -h 127.0.0.1 -p 3306 -uroot -p --no-data --database erp d:\mysql\create_db_blank.sql
# 執行程式mysqldump.exe -h 本機 -p port是3306 登陸root賬戶 -p --不選擇資料 --選擇所有資料庫進行備份 > 備份位置\備份檔案的名稱

2.4 資料的匯入/匯出

匯出資料:

SELECT * FROM customers INTO OUTFILE 'd:\mysql\out.csv'

匯入資料:
(customers2 是一張空表,此時將匯出的資料重新載入空表中)

SELECT * FROM customers2
LOAD DATA INFILE 'c:\mysql\out.csv' INTO TABLE customers2;
# 將資料匯入空表
SELECT * FROM customers2;
# 匯入空表後檢視

2 效能管理(索引 Index)

在這裡插入圖片描述
右鍵Table → 選項卡Index → 寫入索引的名稱,索引列欄位名,索引型別和方法 → 儲存
然後在 MySQL語句中加上 ‘EXPLAIN’ 即可在結果中看到 MySQL篩選過程的資料:

EXPLAIN
SELECT * FROM customers WHERE cust_id = 10004

在這裡插入圖片描述

相關文章