mysql 的预编译功能默认是关闭的| 学习笔记

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 快速学习 mysql 的预编译功能默认是关闭的。

开发者学堂课程【JDBC 数据库开发入门mysql 的预编译功能默认是关闭的】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/29/detail/636


mysql 的预编译功能默认是关闭的


容介绍

一、执行的过程

二、MySQL 执行预编译

三、使用 Statement 执行预编译

四、useSenverPrepstmts 参数

五、cachePrepStmts 参数

六、打开批处理


一、通过查看 MySQL 日志可以看到执行的过程

图片1.png


二、MySQL 执行预编译

1. 执行预编译语句

例如:prepare myfun from 'select * from t. book where bid=?"

2. 设置变量

例如: set @str='b1"

3. 执行语句

例如: execute myfun using @str

如果需要再次执行 myfun,那么就不再需要第一步,即不需要再编译语句了:

1.设置变量,例如: set @str='b2'

2.执行语句,例如:execute myfun using @str

三、使用 Statement 执行预编译

connection con = gdbcutils:getConnection ( );

statement stmt =con.createStatement

stmt.exe.cuteUpdate ( "preparemyfun from 'aelect * from t_book where

bid=?' ");

stmt.executeUpdate("'set @str='b1' '');

图片2.png


四、useSenverPrepstmts 参数

默认使用 PreparedStatement. 是不能执行预编译的,这需要在url中给出useServerPrepStmts=true 参数( MysQL. Server 4.1 之前的版本是不支持预编译的,而 Connector/J在 5.0.5以后的版本,默认是没有开启预编译功能的。)

例如:

idbcamysql://localhost:3306/test?useserverPrepstmts=true

这样才能保证 mysql 驱动会先把 SQL语句发送给服务器进行预编译,然后在执行executeQuery() 时只是把参数发送给服务器。


五、cachePrepStmts 参数

当使用不同的 PreparedStatement 对象来执行相同的 SQL 语句时,还是会出现编译两次的现象,这是因为驱动没有缓存编译后的函数key,导致二次编译。

如果希望缓存编译后函数的 key,那么就要设置 cadheprepstmts 参数为 true。

例如:

ldbcmysq://localhost:3306/test?useserverPrepstmts=true&cachePrepStmts=true


六、打开批处理

MySQL 的批处理也需要通过参数来打开:

rewriteBatchedStatements=true


            </div>
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
52 0
|
4月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
52 0
|
5天前
|
分布式计算 DataWorks MaxCompute
DataWorks产品使用合集之在DataWorks中,将数据集成功能将AnalyticDB for MySQL中的数据实时同步到MaxCompute中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
18 0
|
6天前
|
关系型数据库 MySQL 分布式数据库
PolarDB产品使用合集之PolarDB MySQL标准版中带有分区功能吗
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6天前
|
数据管理 关系型数据库 MySQL
数据管理DMS产品使用合集之DMS可以接入其他平台的MySQL数据库,是否还支持无感知变更功能
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
2月前
|
NoSQL 关系型数据库 MySQL
一个小小的签到功能,到底用MySQL还是Redis
一个小小的签到功能,到底用MySQL还是Redis
7 0
|
3月前
|
关系型数据库 MySQL
MySQL学习笔记
MySQL学习笔记
|
3月前
|
安全 关系型数据库 MySQL
某教程学习笔记(一):09、MYSQL数据库漏洞
某教程学习笔记(一):09、MYSQL数据库漏洞
20 0
|
3月前
|
存储 关系型数据库 MySQL
《高性能Mysql》学习笔记(二)
《高性能Mysql》学习笔记(二)
136 0
|
3月前
|
存储 SQL 关系型数据库
《高性能Mysql》学习笔记(一)
《高性能Mysql》学习笔记(一)
95 0