发表于: 2017-07-24 00:03:41

1 1021



DAY 3


今天完成任务1的步骤7~10,简单了解一下索引,会用sql语句创建索引和删除索引。


遇到的问题:

1.在步骤8中用sql语句导出导入sql文件失败,不知道是什么原因

2.索引部分的关于组合索引的内容看着还是有点懵


明天的计划:

1.把这两天落下的问题(字符集彻底修改成utf8,sql语句导出导入sql文件失败)研究一下

2.学习一下触发器的内容,以及搞清楚为什么步骤5要求所有的时间使用long类型(刚好也是深度思考的题目)

3.另外找资料学一下索引部分的知识

4.完成步骤11深度思考


-------------------- 分割线 --------------------


步骤7.分别用Navicat和Sql语句去将本条数据记录的报名宣言改成老大最帅


①使用Sql语句修改

a.mysql>updata student set desire='老大最帅' where name='包腾飞';


b.查看结果
mysql>selecet * from student where name='包腾飞'\G;


②使用Navicat将报名宣言改回来

-------------------- 分割线 --------------------


步骤8.将表导出成sql文件,并用Navicat和sql分别尝试删除词条数据,并用之前备份的sql恢复


①导出sql文件
a.用sql语句导出导入失败,原因不明,明天花时间解决一下
mysql> mysqldump -h localhost -u root -p mission_1 student>d:\mysql\student.sql;导出语句
ERROR:
Unknown command '\m'.
--------------
mysql  Ver 14.14 Distrib 5.7.18, for Win64 (x86_64)
Connection id:          54
Current database:       mission_1                               
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.7.18 MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    gbk
Conn.  characterset:    gbk
TCP port:               3306
Uptime:                 1 day 6 hours 44 min 58 sec
Threads: 6  Questions: 1816  Slow queries: 0  Opens: 192  Flush tables: 1  Open tables: 126  Queries per second avg: 0.016
--------------
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysqldump -h localhost -u root -p mission_1 student>d:\mysqltudent.sql' at line1导出失败


b.用Navicat导出sql文件


c.在保存路径找到sql文件,说明导出文件成功


②删除记录
sql语句删除数据
mysql> delete from student where name='包腾飞';
Query OK, 1 row affected (2.33 sec)
mysql> select * from student\G;
Empty set (0.00 sec)
ERROR:
No query specified


③导入sql文件恢复数据

a.用Navicat导入,右键数据库mission_1>选择运行SQL文件>选择student.sql>开始>绿条满后点击关闭

b.打开表,数据确实恢复了:


-------------------- 分割线 --------------------


步骤9.给姓名建索引,思考一下还应该给那些数据建索引?


索引分5种:INDEX,UNIQUE,PRIMARY KEY,FULTEXT,以及组合索引


创建索引的语句有两种

ALTER TABLE table_name ADD INDEX index_name(col_name);

CREATE INDEX index_name ON table_name(col_name);


删除索引的语句

DROP INDEX index_name ON table_name;


索引能够提高查询的速度,所以除了给姓名建索引外,还可以给修真类型和技能树ID建索引


创建表student时,已经给字段ID设置了主键索引PRIMARY KEY


-------------------- 分割线 --------------------


步骤10.插入10条数据,查看有索引和无索引的情况下,sql语句执行的效率

①无索引时,插入10条数据,查看效率(用时0.3s)
mysql> insert into student(name,qq,major,entrytime,gra_school,id_jnshu,daily_url,desire,bro_jnshu,knowfrom)
    -> values('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎');
Query OK, 10 rows affected (0.30 sec)
Records: 10  Duplicates: 0  Warnings: 0


②用Navicat把上一步插入的10条数据删除,然后给姓名创建索引,接着插入10条数据,查看效率(用时0.4s)

mysql> alter table student add index name_student(name);
Query OK, 0 rows affected (0.25 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> insert into student(name,qq,major,entrytime,gra_school,id_jnshu,daily_url,desire,bro_jnshu,knowfrom)
    -> values('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎'),
    -> ('包腾飞','917475409','前端工程师','2017-07-07','吉林建筑大学城建学院','3834','http://www.jnshu.com/daily/27463?dailyType=others&total=7&page=1&uid=13188&sort=0&orderBy=3','既然做了决定,就不要让自己后悔','韩建名','知乎');
Query OK, 10 rows affected (0.04 sec)
Records: 10  Duplicates: 0  Warnings: 0


以上,可以看出,在添加索引的情况下,插入数据的效率会下降。这是因为索引的弊端,每插入一条数据都要更新一次索引内容,导致插入数据效率下降


-------------------- 终于写完了的分割线 --------------------



返回列表 返回列表
评论

    分享到