重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
查询缓存:
成都创新互联是一家专注网站建设、网络营销策划、微信小程序、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十载以来,已经为千余家成都火锅店设计各业的企业公司提供互联网服务。现在,服务的千余家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
只有当查询的语句完全一致(通过哈希查询实现,大小区分)才会命中,命中后直接检查用户权限,之后直接返回数据给客户端
查询优化处理:
语法解析和预处理:根据SQL生成语法解析树,并解析语法错误,预处理器检查解析树是否存在数据上的错误
查询优化器:选择最好的执行计划,包括对语句的优化,对关联顺序的优化,使用索引等
查询执行引擎:
相较查询处理优化阶段,执行引擎阶段仅是将执行计划利用存储引擎提供的接口执行,并不复杂!
查看存储过程创建语句可运行下列SQL语句:语法show create {procedure|function} sp_name;例如查看存储过程myPro的创建语句show create procedure myPro;查看自定义函数myFunc的创建语句show create function myFunc;
假设A表有3个字段,ID, DATA1,DATA2
简单的话可以不使用存储过程,比如:
select * form A where ID in (select ID from A where DATA1 between 0 and 100)
如果你的应用比较复杂,在嵌套中还有复杂的运算,存储过程可以如下例子:
CREATE PROCEDURE test(in_start int,in_end int)
BEGIN
DECLARE ids TEXT;
select GROUP_CONCAT(ID) into ids from A where DATA1 between in_start and in_end;
select * from A where FIND_IN_SET(ID,ids) 0;
END
注: in_start, in_end是DATA1的筛选范围。 后面一个select直接返回一个表
直接用SQL和使用存储过程各有利弊,存储过程在你使用大量查询及SQL运算的时候效率很高,而且存储过程一旦写入数据库会被自动编译运行速度比较快,而SQL是每次执行都需要被编译一次的。但是存储过程的调试比较麻烦,不像你使用编程语言和SQL的时候可以单步调试。而且如果没有熟练掌握存储过程的效率优化情况下,使用存储过程可能比使用SQL更慢。