发表于: 2022-06-14 16:30:58
0 594
今天完成的事情:
今天完成了操作数据库、给表的字段添加索引并测试性能
pull镜像
docker pull mysql/mysql-server
docker创建mysql5.5容器
docker run --restart=always --name mysql5.5 -p 3306:3306 -v /Users/leif/data/db/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root123 -d daocloud.io/library/mysql:5.5 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
从报名贴中找一条最近报名的师弟,用Mysql插入这条数据,并能够根据姓名查出来这条记录
姓名:朱春雨
QQ:920683808
修真类型:前端工程师
预计入学时间:2019年11月7日
毕业院校:辽宁理工学院
线上(jnshu.com)学号:39518
日报链接:http://www.jnshu.com/school/39518/daily
立愿:如果我不能在IT特训营拼尽全力,为自己以后的修行路上打好基础,就让我变胖15斤!
辅导师兄:姚富成
从何处了解到的修真院:朋友推荐
插入数据:
INSERT INTO `student` VALUES ('2006116Y18X1Z','朱春雨','920683808',1,'2019-11-07', '辽宁理工学院', '39518', 'http://www.jnshu.com/school/39518/daily', '如果我不能在IT特训营拼尽全力,为自己以后的修行路上打好基础,就让我变胖15斤!','姚富成','朋友推荐', '2019-11-07 14:19:48', '2019-11-07 11:18:05');
根据姓名查询记录
分别用Navciat和Sql语句去将本条数据记录的报名宣言改成老大最帅
将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。
基本 mysql备份默认命令:
mysqldump -u root -p apply_activity > backup.sql
docker mysql备份命令:
docker exec mysql5.5 sh -c 'exec mysqldump apply_activity -uroot -p"$MYSQL_ROOT_PASSWORD"' > /Users/leif/Desktop/backup.sql
给姓名建索引,思考一下还应该给哪些数据建索引
create index `name_idx` on `student`(`name`);
// 给查询频率较高的字段增加索引 给qq号、以及线上ID增加唯一索引
给毕业院校添加普通索引 给修真类型添加普通索引 给辅导师兄以及了解的出处添加普通索引
插入10条数据,查看有索引和无索引的情况下,Sql语句执行的效率
经过对比加索引和没加,索引效果是一样的
查看深度思考中Mysql相关的一些问题,将自己思考的结果写在日报中,并查阅之前师兄的日报,看看是否有合自己思路接近或者是完全不一致的地方
- mysql索引:添加索引是可以提高性能,但是索引同样占磁盘空间,如果表复杂,索引又过多的话,有可能比原来多几个G也是有可能的。
- 存储引擎:默认InnoDB、有些查询场景使用MyISAM
- 锁:mysql的锁是什么?在数据库中除了CPU、IO、RAM等的争抢,数据也是一种供多用户共享的资源 如何保证数据访问并发的一致性,有效性,是所有数据库必须要解决的问题 锁冲突也是影响数据库并发访问性能的一个重要因素,因此,锁对数据库尤为重要 加锁是非常消耗资源的,锁的各种操作,包括获得锁、检测锁是否已解除、释放锁等 ,都会增加系统的开销。
- 事务:事务可以保证多次操作数据表中的数据,要么成功要么失败、保证了原子性,只有涉及到数据的修改、变更,才会有事务的概念
明天计划的事情:
使用idea创建一个maven项目,并使用spring开发一个demo程序,并测试
遇到的问题:
在docker中备份数据库、需要注意、它用的是虚拟映射地址
收获:
锻炼了实操能力、还是要多练习
评论