目录
存储过程:
什么是存储过程:
存储过程的优点以及缺点:
MySQL如何优化:
MySQL临时表创建及一些相关知识点:
存储过程:
什么是存储过程:
存储过程类似于java中的某些方法,可以用于实现一些比较复杂的逻辑功能,针对于数据库,简单来说,就是一组sql语句。存储过程是主动来使用sql语句来调用数据库中的某些信息的。
存储过程的优点以及缺点:
优点:
1、可以直接修改存储过程,从而修改项目的业务逻辑或者存储方式。就比如jpa还有mybatis中的操作数据库部分的dao层和mapper层。
2、执行速度快,这点是毋庸置疑的。
3、可以减少网络传输,离开啦网速的限制,这样我们项目采用的存储过程方面受到的最大影响就是服务器的硬盘速度了。
4、方便DBA优化,将sql语句都集中在一个位置,非常方便管理和优化。
缺点:
1、SQL只是一种结构化查询语言,本质上是过程化的,面对相当复杂的业务逻辑的话,会很吃力。
2、不便于调试。
3、没有应用缓存,不想redis这样的非关系型数据库可以进行缓存。
4、无法适应数据库的切割,不能跨数据库进行查询。
MySQL如何优化:
1、表的设计合理化(符合3NF)
2、添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]
3、SQL语句优化
4、分表技术(水平分割、垂直分割)
5、 读写[写: update/delete/add]分离
6、存储过程 [模块化编程,可以提高速度]
7、对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ]
8、 mysql服务器硬件升级
9、定时的去清除不需要的数据,定时进行碎片整理(MyISAM)
MySQL临时表创建及一些相关知识点:
1、MySQL中包含着局部临时表,还有全局临时表,其中局部临时表只对当前连接有效,如果当前连接断开的话就会自动删除。
全局临时表呢:对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删除。这边主要演示一下针对全局临时表的做。
2、在mysql数据库中穿件全局临时表:
-- 创建临时表one
create temporary table `one` (
`id` varchar(32) not null,
`username` varchar(32) not null,
`password` varchar(32) not null,
primary key (`id`)
)
然后在全局临时表中添加信息:
-- 向临时表one中插入信息
insert into `one` value ('123','123','0');
之后,只要我进行一次查询,或者是断开链接全局部临时表都会直接删除。
-- 查询临时表
select * from one
-- 删除临时表
drop table one