在本实验中,我们将学习和练习索引、视图、备份和恢复。这些概念对于数据库管理员来说非常重要。
开始之前,我们需要准备好环境。
启动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中文网其他相关文章!