PolarDB-X 1.0-SQL 手册-Prepare SQL-Prepare 协议使用说明

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: Prepare 协议介绍PolarDB-X提供对服务器端预处理语句的支持,支持利用高效的客户端/服务器二进制协议。使用准备好的语句和占位符来获取参数值具有以下好处:每次执行时解析语句的开销都较小。通常情况下,数据库应用程序处理大量几乎相同的语句,只改变 Prepare 语句中的变量值,这样可以大幅度提升 SQL 执行效率。防止 SQL 注入攻击。

Prepare 协议介绍

PolarDB-X提供对服务器端预处理语句的支持,支持利用高效的客户端/服务器二进制协议。使用准备好的语句和占位符来获取参数值具有以下好处:

  • 每次执行时解析语句的开销都较小。通常情况下,数据库应用程序处理大量几乎相同的语句,只改变 Prepare 语句中的变量值,这样可以大幅度提升 SQL 执行效率。
  • 防止 SQL 注入攻击。

协议详细说明

  • Prepare 协议支持范围
  • Prepare 协议目前支持:
  • 即 Prepare 协议支持使用 JDBC 及其他各种语言使用
  • MySQL支持范围参见Prepared Statements
  • Prepare 协议 SQL 支持范围
  • 支持所有 DML 语句,例如:SELECT、UPDATE、DELETE、INSERT 等
  • Prepare 协议 SQL 不支持范围
  • 不支持 DML 以外其他 SQL 语句,例如: SHOW、SET 等
  • Prepare 协议不支持在 MySQL 命令行使用
  • 如:以下方法不支持
  1.   mysql> SET @s='SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
  2.   mysql> PREPARE stmt2 FROM @s;
  3.   mysql> SET @a=6;
  4.   mysql> SET @b=8;
  5.   mysql> EXECUTE stmt2 USING @a,@b;

在Java中开启 Prepare 协议

  • 在Java客户端中,如果需要使用 Prepare 协议,需要强行在 URL 连接串中增加 useServerPrepStmts=true 参数,如果不指定此参数,则 PreparedStatement 默认会走普通查询
  • 如:jdbc:mysql://xxxxxx:3306/xxxxxx?useServerPrepStmts=true

Java 使用示例:


  1. Class.forName("com.mysql.jdbc.Driver");
  2. Connection connection =  DriverManager.getConnection("jdbc:mysql://xxxxxx:3306/xxxxxx?useServerPrepStmts=true","xxxxx","xxxxx");
  3. String sql ="insert into batch values(?,?)";
  4. PreparedStatement preparedStatement = connection.prepareStatement(sql);
  5. preparedStatement.setInt(1,0);
  6. preparedStatement.setString(2,"corona-db");
  7. preparedStatement.executeUpdate();
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
SQL 监控 数据库
PolarDB-X 2.0,同一条sql,有时执行200ms,有时8000毫秒,是什么原因,频率很高.?
PolarDB-X 2.0,同一条sql,有时执行200ms,有时8000毫秒,是什么原因,频率很高.?
93 1
|
4月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之将RDS切换到PolarDB-X 2.0时,代码层的SQL该如何改动
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
SQL 关系型数据库 分布式数据库
drds和polardb的sql语句分别有哪些
drds和polardb的sql语句分别有哪些
147 1
|
12月前
|
SQL 关系型数据库 分布式数据库
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
783 6
|
11月前
|
关系型数据库 MySQL 数据库
史上最全的MySQL性能手册(优化+SQL+并发+数据库)
史上最全的MySQL性能手册(优化+SQL+并发+数据库)
|
6月前
|
SQL 存储 缓存
PolarDB-X SQL限流
本文首先介绍了SQL限流的使用场景,它可通过限制边缘业务查询,留出资源来为核心业务保驾护航。接着是功能简介,PolarDB-X结合自身云原生分布式的特点,提供了具有简洁易用的交互接口、多样的限流策略、平均复杂度O(1)、节点级限流实例级监控的SQL限流能力。
128 1
PolarDB-X SQL限流
|
6月前
|
SQL Java 调度
PolarDB-X SQL限流 (二)
当前PolarDB-X正在全面对接阿里云 ''数据库自治服务 DAS",PolarDB-X限流能力将会以白屏化的方式提供给用户,经一步提升用户体验,降低使用门槛。
121 0
PolarDB-X SQL限流 (二)
|
6月前
|
SQL 弹性计算 测试技术
实践教程之如何在PolarDB-X中优化慢SQL
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。本期实验将指导您使用对 PolarDB-X 进行慢SQL优化。...
116 0
实践教程之如何在PolarDB-X中优化慢SQL
|
6月前
|
SQL 运维 数据库
PolarDB-X 限流慢SQL的方法
如果用户发现活跃连接数、cpu 使用率等指标处于高位, 同时慢SQL日志中发现大量记录, 分析得出是大量慢 SQL占用了数据库资源,而且这些慢SQL已经影响到整体核心业务的稳定运行,此时我们需要对其进行限流。
119 0
PolarDB-X 限流慢SQL的方法
|
20天前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!

相关产品

  • 云原生分布式数据库 PolarDB-X