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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习 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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
4月前
|
SQL 存储 关系型数据库
MySQL功能模块探秘:数据库世界的奇妙之旅
]带你轻松愉快地探索MySQL 8.4.5的核心功能模块,从SQL引擎到存储引擎,从复制机制到插件系统,让你在欢声笑语中掌握数据库的精髓!
164 26
|
10月前
|
存储 关系型数据库 MySQL
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
674 81
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
320 6
|
8月前
|
存储 关系型数据库 MySQL
MySQL细节优化:关闭大小写敏感功能的方法。
通过这种方法,你就可以成功关闭 MySQL 的大小写敏感功能,让你的数据库操作更加便捷。
640 19
|
8月前
|
关系型数据库 MySQL 数据库
|
自然语言处理 关系型数据库 MySQL
mysql 全文搜索功能优缺点
mysql 全文搜索功能优缺点
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
341 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
233 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
183 1
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
174 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)

推荐镜像

更多