在本實驗中,我們將學習和練習索引、視圖、備份和還原。這些概念對於資料庫管理員來說非常重要。
開始之前,我們需要準備好環境。
啟動MySQL服務並以root身分登入。
載入檔案中的資料。需要在MySQL控制台輸入指令來建構資料庫:
索引是與表格相關的結構。它的作用相當於一本書的目錄。您可以根據目錄中的頁碼快速找到內容
當你要查詢一張記錄數量較多的表,且該表沒有索引時,那麼會拉出所有記錄一一符合搜尋條件,並傳回符合條件的記錄。非常耗時,導致大量的磁碟I/O操作。
如果表中存在索引,那麼我們可以透過索引值快速找到表中的數據,從而大大加快查詢過程。
有兩種方法可以為特定欄位設定索引:
讓我們使用這兩個語句來建立索引。
在employee表的id欄位建立idx_id索引:
在employee表的name欄位建立idx_name索引
我們使用索引來加速查詢過程。當沒有足夠的數據時,我們將無法感受到它的神奇力量。這裡我們使用指令SHOW INDEX FROM table name來查看我們剛剛建立的索引
當我們使用SELECT語句查詢時,WHERE條件會自動判斷是否有索引。
視圖是從一個或多個表派生的虛擬表。它就像一個窗口,透過它人們可以查看系統提供的特殊數據,從而不必查看資料庫中的全部數據。他們可以專注於他們感興趣的事情。
如何解釋「View是一個虛擬表」?
建立View時使用的語句格式:
從語句中我們可以看到後半部是一條SELECT語句,這表示View也可以建立在多個表上。我們需要做的就是在 SELECT 語句中使用子查詢或 join 。
現在讓我們建立一個名為v_emp的簡單視圖,其中包含三列v_name、v_age、v_phone:
然後輸入
出於安全考慮,備份在資料庫管理中極為重要。
匯出檔案僅保存資料庫中的數據,而備份將整個資料庫結構(包括資料、約束、索引、視圖等)儲存到新檔案。
mysqldump是MySQL中用於備份的實用程式。它會產生一個 SQL 腳本文件,其中包含從頭開始重新建立資料庫的所有基本命令,例如 CREATE、INSERT 等。
使用mysqldump備份的聲明:
嘗試備份整個資料庫mysql_labex。將檔案命名為 bak.sql。先按Ctrl+Z退出MySQL控制台,然後開啟終端機輸入指令:
使用指令“ls”,我們會看到備份檔bak.sql;
在本實驗的前面,我們練習了使用備份檔案來還原資料庫。我們使用了類似這樣的指令:
此語句從 import-database.txt 檔案還原 mysql_labex 資料庫。
還有另一種方法來還原資料庫,但在此之前,我們需要先建立一個名為 test的空資料庫:
雷雷 雷雷
Ctrl+Z退出MySQL。恢復bak.sql以測試資料庫:
雷雷
mysql -u root USE test SHOW TABLES
MariaDB [(none)]> USE test; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [test]> SHOW TABLES; +----------------+ | Tables_in_test | +----------------+ | department | | employee | | project | | table_1 | +----------------+ 4 rows in set (0.000 sec)
We can see that the 4 tables have already been recovered to the test database.
Congratulations! You've completed the lab on other basic operations in MySQL. You've learned how to create indexes, views, and how to backup and recover a database.
? Practice Now: Other Basic Operations
以上是掌握資料庫操作:索引、視圖、備份和恢復的詳細內容。更多資訊請關注PHP中文網其他相關文章!