彩票走势图

MySQL:基于Java的客户端与服务器端的缓存语句

原创|行业资讯|编辑:龚雪|2015-10-16 16:18:54.000|阅读 277 次

概述:通过对比Oracle、SQL Server、PostgreSQL和MySQL解决预备语句的方法,我们更好的了解到MySQL如何以数据库性能为出发点进行工作的。缓存语句对应用程序性能有显著影响。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

通过对比Oracle、SQL Server、PostgreSQL和MySQL解决预备语句的方法,我们更好的了解到MySQL如何以数据库性能为出发点进行工作的。

通常,预备语句的方式有两种:服务器端和客户端。

服务器端预备语句

服务器端预备语句是最常见的形态,它需要两个数据回路:

  • 驱动程序提出一个预处理请求,数据库将在查询树种分析语句,并可以将其转化为预优化树结构。没有绑定参数值的执行计划将被推迟,直到请求被处理。
  • 数据库使用绑定当前参数值的执行请求将分析树转化为优化的执行计划。执行人采用该计划,并建立相关的结果集。

如果数据库不进行预备语句的缓存,额外的数据回路将会影响性能。为此,一些数据库系统不默认执行服务器端的预备语句,而是执行客户端的预备语句。

为了使服务器端的预备语句可行,必须启用useServerPrepStmts属性。

客户端预备语句

在客户端的预备语句,绑定参数标记将先于实际参数发送到数据库服务器。这样,驱动程序就可以通过单个请求来获取结果集。

缓存语句

在高性能的OLTP系统中,语句缓存在缓解处理延迟中起到了非常重要的作用。为了避免多次准备一个语句,MySQL驱动程序提供了客户端的语句缓存。默认状态下被禁用,可以使用cachePrepStmtsConnection属性激活该功能。

对于客户端的语句,被标记的语句结构可以在不同的预备语句调用中使用。绑定了一个数据库连接的缓存,当使用一个连接池时,物理接连周期将跨过多个应用级事物处理时间(所以缓存会为频繁执行语句提供便利)。

对于服务器端的语句,驱动程序对服务器端预备语句进行缓存,同样还有服务器端语句支持的缓存(并非所有语句都可以在服务器端进行预处理)。

总之,缓存语句对应用程序性能有显著影响。


标签:mysql

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP