优化体系--MySQL数据库的SQL预处理技术,值得收藏

深圳新闻 浏览(1184)

今天,我主要分享MySQL的SQL预处理方面。优化必须是一个方面。我建议每个人都能掌握它。

1,即时SQL

数据库收到最终执行后,SQL返回。一般过程如下:

9096c9904ad64edb97b4b9d556e5373b

1.词汇和语义分析; 2.优化SQL语句,制定执行计划; 3.执行并返回结果;

SQL由进程直接处理,编译一次,运行一次。这种类型的正常语句称为立即语句。

2,预处理SQL

可以重复调用SQL语句,或者每次实现只有不同的值(例如select where子句值不同,update set子句值不同,insert的值不同)。如果您需要完成上述词汇语义分析,语句优化和制定执行计划,效率显然会丢失。

所谓的预编译语句是用占位符替换此类SQL语句中的值,占位符可以视为模板化或参数化的SQL语句,通常称为“准备语句”。

预编译语句的优点是它们被总结为一次编译和多次运行,无需解析和优化;此外,预编译语句可防止SQL注入。

注意:

尽管可以通过预处理SQL在一定程度上提高效率,但为了优化,最佳执行计划不是通过SQL语句的模板实现的,并且通常需要通过特定值来估计成本。成本。

MySQL正式指的是准备,执行和解除分配为PREPARE STATEMENT。翻译也被用来称之为准备好的陈述。

支持的MySQL预编译语句版本较早,因此我们目前使用的MySQL版本受此语法支持。

语法:

#定义准备好的声明

PREPARE stmt_name FROM preparable_stmt;

#Execute准备好的声明

EXECUTE stmt_name [USING