实验环境 Ubuntu Linux 14.04 64位


一、索引


(1)索引是一种与表有关的结构,作用相当于书的目录,可以根据目录中的页码快速地找到所需的内容。


(2)当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录。


缺点:消耗大量数据库系统时间,造成大量磁盘I/O操作。




如果表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速地找到表中的数据,可以大大加快查询速度。




(3)对一张表中的某个列建立索引:


ALTER TABLE 表名 ADD INDEX 索引名(列名);


CREATE INDEX 索引名 ON 表名(列名);




 

数据库索引 esr原则 数据库索引执行流程_数据库




(4)查看索引:SHOW INDEX FROM 表名;




数据库索引 esr原则 数据库索引执行流程_数据库_02


在使用SELECT 语句查询时,语句中WHERE里面的条件,会自动判断有没有可用的索引。




二、视图


(1)视图是从一个或多个表中导出来的表,是一种虚拟存在的表。它就像一个窗口,通过这个窗口可以看到系统专门提供的数据。


作用:用户可以不用看到整个数据库中的数据,而只关心对自己有用的数据。




(2)理解视图是虚拟的表:


数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中。


    《2》使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。


    《3》视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变。


    《4》在使用视图时,可以把它当做一张表。




(3)创建视图:


CREATE VIEW 视图名(列a,列b,列c)AS SELECT 列1,列2,列3 FROM 表名字;




数据库索引 esr原则 数据库索引执行流程_备份_03




视图也可以建立在多张表上,只需要在SELECT 语句中使用子查询或连接查询。




三、导入


(1)导入:把一个文件的数据保存进一张表。


LOAD DATA INFILE ‘文件路径’INTO TABLE 表名字;


(2)例子:将名为in.txt的文件导入表employee中。






数据库索引 esr原则 数据库索引执行流程_索引_04




数据库索引 esr原则 数据库索引执行流程_备份_05




数据库索引 esr原则 数据库索引执行流程_备份_06










四、导出


(1)导出:把数据库某个表中的数据保存到一个文件之中。


(2)语法格式:


SELECT 列1, 列2 INTO OUTFILE ‘文件路径和文件名’ FROM 表名字;




数据库索引 esr原则 数据库索引执行流程_数据库_07




五、备份


(1)备份与导出的区别:


导出的文件只是保存数据库中的数据;而备份是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件


(2)mysqldump 是MySQL用于备份数据库的使用程序,它主要产生一个SQL脚本文件,其中包含从头重新创建数据库所必须的命令(CREATE TABLE INSERT等)。


(3)备份语句:


mysqldump -u root 数据库名 > 备份文件名; #备份整个数据库


mysqldump -u root 数据库名 表名字>备份文件名; #备份整个表


例子:


       先Ctrl+Z退出MySQL控制台,再打开Xfce终端,在终端输入命令:




数据库索引 esr原则 数据库索引执行流程_备份_08


    


使用命令‘ls’可见已经生成备份文件bak.sql




数据库索引 esr原则 数据库索引执行流程_数据库索引 esr原则_09




 六、恢复


 (1)用备份文件恢复数据库:


   source /tmp/SQL6/MySQL-06.sql  


        # 把文件MySQL-06.sql中保存的mysql_shiyan数据库恢复。



(2)新建一个空的数据库test





数据库索引 esr原则 数据库索引执行流程_备份_10





数据库索引 esr原则 数据库索引执行流程_mysql_11







ctrl+z退出MySQL,然后输入语句进行恢复,把刚才备份的bak.sql恢复到test数据库




数据库索引 esr原则 数据库索引执行流程_数据库索引 esr原则_12




总结:


索引:可以加快查询速度


视图:是一种虚拟存在的表


导入:从文件中导入数据列表


导出:将数据从表中导出到文件中


备份:mysqldump备份数据库到文件


恢复:从文件恢复数据库