博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL内核月报 2015.02-MariaDB · 特性分析· Per-query variables
阅读量:6210 次
发布时间:2019-06-21

本文共 1204 字,大约阅读时间需要 4 分钟。

自MariaDB 10.1.2起,MariaDB提供了一种"Per-query variables的方式来为Query设置语句级变量,通过 SET STATEMENT 语句可以为接下来要执行的语句设置一些系统变量值。

语法

SET STATEMENT var1=value1 [, var2=value2, ...] FOR <statement>

varN是一个系统变量,valueN是一个常量值。但是有部分变量是不支持的,在这个章节的末尾列出了所有不支持的变量。

一条 "SET STATEMENT var1=value1 FOR stmt" 语句等价与如下一系列操作:

SET @save_value=@@var1;

SET SESSION var1=value1;

stmt;

SET SESSION var1=@save_value;

MySQL服务器在执行整条语句前会先做解析,所以所有影响解析器的变量都无法达到预期的效果,因为解析完之后才能获得这些变量的值。例如字符集变量sql_mode=ansi_quotes。

一些使用特性的例子

可以限制语句的执行时间 max_statement_time: SET STATEMENT max_statement_time=1000 FOR SELECT ... ;

为一个语句临时改变优化器的规则: SET STATEMENT optimizer_switch='materialization=off' FOR SELECT ....;

为一个语句单独打开MRR/BKA特性: SET STATEMENT join_cache_level=6, optimizer_switch='mrr=on' FOR SELECT ...

下面这些变量无法使用Per-query variables特性来设置

autocommit

character_set_client

character_set_connection

character_set_filesystem

collation_connection

default_master_connection

debug_sync

interactive_timeout

gtid_domain_id

last_insert_id

log_slow_filter

log_slow_rate_limit

log_slow_verbosity

long_query_time

min_examined_row_limit

profiling

profiling_history_size

query_cache_type

rand_seed1

rand_seed2

skip_replication

slow_query_log

sql_log_off

tx_isolation

wait_timeout

转载地址:http://xxkja.baihongyu.com/

你可能感兴趣的文章
zimbra明文密码登陆
查看>>
nginx+ssl 配置
查看>>
从cpanel面板后台如何上传wordpress等CMS模版程序【演示版】
查看>>
三张图记住linux性能、测试、优化工具
查看>>
linux初级shell脚本编写
查看>>
常州某印刷厂服务器3个250G硬盘坏了2个的RAID5数据恢复一案
查看>>
社保医院
查看>>
织梦调用自定义字段
查看>>
java动态代理小记
查看>>
基于信息安全技术的电子病案管理
查看>>
win2008下如何快速安装PHP,并做好安全设置
查看>>
MongoDB 3.0新增特性一览
查看>>
Nokia N900 通过flasher刷机教程
查看>>
软件级负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比
查看>>
JS 密码强度检测
查看>>
Django开发博客(基础篇)
查看>>
PDO防注入原理分析以及使用PDO的注意事项
查看>>
docker compose 部署nginx-tomcat平台
查看>>
写在前面
查看>>
js改变背景
查看>>