我是谁?鬼斯通
![f603764fb5a9fad01c905497cf950168.png](https://i-blog.csdnimg.cn/blog_migrate/cb92e28606c84724c8eaefbee5a01f3d.jpeg)
79.存储过程声明变量
声明变量、修改变量、分配变量
![283e3e3021f58a5f0f75ec746b42c870.png](https://i-blog.csdnimg.cn/blog_migrate/2a27317ff3d9716ee66c4a677cb3e8a8.png)
变量范围:只在定义之内能使用,begin和end之间。
80.存储过程参数传递
in、out、inout
根据传入名称,获取对应信息,in:传入参数
![9b594c90c418aa47ff3a0a11d6c967e0.png](https://i-blog.csdnimg.cn/blog_migrate/117b0364cc30760da53f035a4e54628c.png)
给一个名称获得信息out:输出
![e9fd565da6e6b2f1d2c6d89980a73380.png](https://i-blog.csdnimg.cn/blog_migrate/e776410b29f25f956a1016cdf9c6f598.png)
81.存储过程inout参数
存储过程有点像定义一个函数,in是输入,out是输出,inout即是输入也是输出
![33e0a68770f306fa82d4d8dd5cb92184.png](https://i-blog.csdnimg.cn/blog_migrate/03b81261175cb6baf56e2e0bac258f6a.png)
82.自定义函数
自定义函数:随机生成一个指定个数的字符串
![32390b5724ba5a05ea9cdeb41c79d535.png](https://i-blog.csdnimg.cn/blog_migrate/aa27950d27a1dca0a5b0b8d67900d228.jpeg)
83.存储过程构建千万条数据
![a02ce82d4f7646077899e29cb679e910.png](https://i-blog.csdnimg.cn/blog_migrate/72c5e4f0ba979d8760702fd5025a50e1.jpeg)
![a3b3c0a26df84a518b2bc3010a4cf217.png](https://i-blog.csdnimg.cn/blog_migrate/ab0e65553aa46ae437ff7d9e1155500c.png)
84.什么是索引
数据很多时,查询也会很花费时间。就算查单条数据依然会比较慢
索引:快速找出某个列中特定值的行,相当于是目录,不适用索引的话,mysql必须从第一条记录开始读取整个表。加速!
优劣势:提高检索效率,索引是一张表,所以占用空间,牺牲空间换取时间,更新速度会降低。
索引的分类:单值索引、唯一索引、复合索引、全文索引、空间索引
85.添加索引
创建索引:create index salary_index on emp(salary);
删除所索引:drop index 索引名称 on 表名;
查看索引:show index from 表名;
explain:查看索引是否正在被使用,并且输出其使用的索引信息。
![a0176c3044d2a18319c878694013ef20.png](https://i-blog.csdnimg.cn/blog_migrate/ba15bd7ea16808a590a3b136c3b2909b.jpeg)
有了索引之后再进行查询,会很快就出现
![658dcd248508d4584eb2999dca6be6b5.png](https://i-blog.csdnimg.cn/blog_migrate/9b94b11de0ed993929253f8312f216d3.jpeg)
设置主键后,key_len变成了4
86.索引方法BTree与Hash
对id做了索引,根据id查找会很快,但如果根据其他的列进行查询依然会很慢。
innodb只能用BTree方法。
BTree:一个平衡的多叉树,从根节点到叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接
hash索引:采用哈希算法,检索时只需要一次哈希算法即可立刻定位相应位置,速度非常快。
87.索引的创建选择
需要创建索引的情况:主键自动建立唯一索引;频繁作为查询条件的字段;查询中与其他表关联的字段;频繁更新的字段不适合创建索引;where条件里用不到的字段不创建索引;查询中排序的字段;查询中统计或分组的字段。
不需要创建索引的情况:表记录太少;经常增删改的表;如果某个数据列包含许多重复内容,为它创建索引就没有太大实际效果。
88.MySQL课程总结及后续计划
使用python或其他语言连接数据库