Loading

挑战三天刷完-MySQL数据库优化(第一天)

此次视频看的是B站上面黑马程序员的数据库优化,跟着视频学习,该博客用于做笔记和自己看视频的思考。

一、Linux上安装数据库

 按照步骤一步一步下载,出现了这个错误

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

网上搜了下,然后照着这个网站的解决方法做了下

linux下yum安装时出现Loaded plugins: fastestmirror解决办法_欢迎来到运维联盟的技术博客_51CTO博客

之后没有出现上面的错误了,但还是有错误

 

 发现这个好像是版本不对的原因,因为事情很多,时间不够,所以我就不深究了,用了其他方案安装依赖包了

CentOS7安装MySQL:使用RPM安装包方式(推荐) - 简书 (jianshu.com)

 这个语句直接安装了。

 之后查看随机密码

 

 

登录后修改密码即可

 

 

授权远程登陆

grant all privileges on *.* to 'root' @'%' identified by 'itcast';

测试时密码太简单可以使用

mysql赋予远程权限出现mysqlERROR 1819 (HY000): Your password does not satisfy the current policy requiremen_跟着半仙学java的博客-CSDN博客

远程连接出现了问题

找不到mysql,用whereis mysql 找

Navicat远程连接阿里云上数据库时,出现错误:1045-Access denied for user 'root'@'localhost'解决方法_Williamlmx的博客-CSDN博客

二、索引

 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。

索引的优势和劣势

优势

1) 类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本。(搜索快)

2) 通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。(排序成本小)

劣势

1) 实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的记录,所以索引列也是要占用空间 的。(空间占用大)

2) 虽然索引大大提高了查询效率,同时却也降低更新表的速度,如对表进行INSERT、UPDATE、DELETE。因为 更新表时,MySQL 不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,都会调整因为更新所 带来的键值变化后的索引信息。(更新慢)

索引的数据结构

InnoDB所支持的主要就是BTREE索引(B+树)

 

 

 BTREE(B树)

BTREE索引是B+树

 

 

 其中,ceil是向上取整。

B树插入的演变过程

 

 

 

 

 

就是先把值插到最后一层比n大了,在把一个筛到上面的递归过程吧。

B+Tree

 

 

 Mysql中的B+树

 

 

 

 不同于普通B+树的就是叶子之间多了个指针,来提高区间访问速度,如查9-15

索引分类

 

 

 索引语法

创建索引(默认是BTREE索引):

查看索引:

删除索引:

 

ALTER命令:

 

 

 

 

 索引设计原则:

 

 

 三.视图:

视图(View)是一种虚拟存在的表。通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

优势:

相对于普通的表:

 

 相当于把查询结果存起来,方便以后用。

创建、修改、查看、删除视图:

创建:

 

 

 

 create view ... as  select ...

 修改:

 

更新视图数据,即update view “view_name”  set “view_row”= 'xx';

若是有选项with...,则必须遵守选项条件才可以更新。

修改是修改视图的全部内容,更新是修改视图字段的值

 查看:

不存在show views语句,可以用show tables查看,但show tables不仅显示view,还有table。如果要查看视图的定义,可以使用show create view “view_name”查看

删除:

 

 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

内容有:MySQL安装(安装包)、索引、视图。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

图片是课件,打字大部分是自己的思考,若有错误请指出。

第一天学的东西属实少了,课件的安排是4天,而我的安排缩短了一天,但今天完成的却连课件的第一天都没完成,主要耗费在mysql的安装上,而且也是在下午才开始学习,明天加油吧。

posted @ 2022-05-15 23:51  happy_game  阅读(33)  评论(0)    收藏  举报