ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

敷衍的面试|记录问题仅供参考,不代表最终答案

2020-06-17 13:36:33  阅读:252  来源: 互联网

标签:存储 END 敷衍 面试 调优 参数 内存 仅供参考 out


MySQL的存储过程

1、概念:预先编译好的sql语句集合
2、提高效率:简化代码的重用性,简化操作,减少了编译次数并且减少了和数据库服务器的链接次数。
3、存储过程的参数列表

参数模式  参数名 参数类型
参数模式:in:需要传入方传值
		out:该参数可以作为返回值
		inout:继需要参数值,也有返回值

4、BEGIN…END
(1)每条sql需要分号结尾
(2)存储过程结尾需要DELIMITER(DELIMITER$$)
5、调用
call 存储过程名(实参列表)
6、定义变量
DECLEAR 变量名 变量类型

 1. 声明语句结束符:DELIMITER $$  或  DELIMITERo
 2. 存储过程开始和结束:`BEGIN...END`
 3. 变量赋值:SET  @p_in=1  
 4. 变量定义:DECLARE 1_INT int unsigned default 40000`
 5. 创建存储过程、存储函数:
 6. create procedure 存储过程名(参数)
 		例:
 		create procedure in_param(in p_in int )  #in 表示输入参数  p_in参数名  int 数据类型
 		例2:
 		create procedure out_param(out  p_out   varchar)`
 		
 8. 存储过程体:`create function 存储函数名(参数)`
 9. 过程体格式
 开始于begin结束end
 可以多层嵌套
 BEGIN
 	BEGIN
 		statements
 	END
 END

MySQL调优:索引调优、sql语句调优

1、条件语句调优
(1)where之后的条件,尽量不使用函数
(2)like之后使用最左检索,例:like “ab%” 而非 like “%b%”
2、索引调优
(1)索引的添加要注意,不要添加在常做修改的字段上
(2)多使用符合索引
(3)使用explian先查看索引的type级别,进行级别的升高
3、复杂sql优化
尽量简化成子查询,避免复杂的混合查询

应用程序内存溢出问题解决

栈内存溢出:程序所要求的栈深度过大导致。
堆内存溢出: 分清 内存泄露还是 内存容量不足。泄露则看对象如何被 GC Root 引用。不足则通过 调大 -Xms,-Xmx参数。
持久带内存溢出:Class对象未被释放,Class对象占用信息过多,有过多的Class对象。 通过-XX:PermSeize和-XX:MaxPermSeize限制方法区大小
无法创建本地线程:总容量不变,堆内存,非堆内存设置过大,会导致能给线程的内存不足。
该问题来自该博客

MySQL内置的函数

count()计数
avg()平均数
max()最大
min()最小
sum()求和
单行函数:针对单行数据
length()单行数据长度
concat()拼接字段
reverse()字符串反转
trim()去掉空格
sumstr()截取字符串
strcmp()匹配字符,匹配返回0
now()当前时间
date_format(date,“yy年MM月dd日”) 日期格式转换
datediff() 返回两者的差值
if()判断
ifnull()判断是否为空

数据库排序、分组、分页、链表查询

排序order by
升序ASC
降序DESC
分组group by
链表
内连接:inner join … on
左外:left join …on
右外:right join … on
on 后的条件:不管是否成立都会有返回值
where 后的条件不成立则无返回值

limit 使用
limit 2,3;从2开始,查3条数据

标签:存储,END,敷衍,面试,调优,参数,内存,仅供参考,out
来源: https://blog.csdn.net/wenquan19960602/article/details/106729549

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有