MySQL中有哪些系统变量,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联专业为企业提供德宏州网站建设、德宏州做网站、德宏州网站设计、德宏州网站制作等企业网站建设、网页设计与制作、德宏州企业网站模板建站服务,10多年德宏州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
MySQL系统变量应用有哪些
MySQL系统变量
比如,公司的总人数,很多存储过程都需要调用这个值,但是因为这个值,不是经常会改变的,不需要每次都count.
所以大多数人会考虑把它cache一把,那么mysql提供的全局变量,就是一个好的存储场所.
2,数据库配置中心
首先,这不一定是一种好的解决方式,特别是大型地分布式系统.但是想到了,就跟大家分享一下.
主要就是利用了三层,四层架构的系统,必不可少的数据库层来实现的.
大家知道,应用的配置,大多数是用配置文件或配置服务器来实现,前者需要跟着项目打包,部署.
后者,只要在应用初始化或运行时,去配置中心取配置就行了.(淘宝这边两者都在用)
而数据库的配置中心,其实类似配置服务器,只不过灵活运用了mysql的变量机制.
它能继承配置服务器的多数优点,但最大的特色就是在sql,function,procedure里都可以很方便地引用到.(相比用表的方式,要方便一些)
并且本身就具有缓存,移植得话,mysql得导出也是很快.
所以小系统,想快速得搭建一个配置中心,利用mysql感觉还是不错的.
调用语法:
select*fromuser_infowhereid=@@global.admin_id--例子,通过全局里配置的管理员id来取用户信息
以下是全局变量的一些常用命令,比较简单:
setglobalauto_increment_increment=1;--设置序列的增长值
showglobalvariables;--显示所有的global变量
showglobalvariableslike'%test%'--查询包含test字符串的global变量
会话系统变量,主要用于在当前客户端连接的生命周期内.它的变量值是全局变量的一份拷贝.
如果连接断开,对当前会话变量所做修改都会被重置.
比如,服务器会话变量autocommit默认为true,而你在非常连的客户端连接里设置了false,那么在执行完sql后,连接就会断开.此后,如果创建新的连接来执行sql,autocommit又会默认true.
会话变量的使用场景与全局类似,只是生命周期不同,因此可以用来统计同一连接内请求sql次数,sql类型等信息.
session变量的一些常用操作:
setsessionauto_increment_increment=1;--设置序列的增长值
showvariables;orshowsessionvariables;--如果不指明,默认使用session变量
showvariableslike'%test%'orshowsessionvariableslile'%test%'--查询包含test字符串的session变量。
MySQL系统变量怎么使用
MySQL可以访问许多系统和连接变量。当服务器运行时许多变量可以动态更改。这样通常允许你修改服务器操作而不需要停止并重启服务器。
mysqld服务器维护两种MySQL系统变量。全局变量影响服务器整体操作。会话变量影响具体客户端连接的操作。
当服务器启动时,它将所有全局变量初始化为默认值。这些默认值可以在选项文件中或在命令行中指定的选项进行更改。服务器启动后,通过连接服务器并执行SETGLOBALvar_name语句,可以动态更改这些全局变量。要想更改全局变量,必须具有SUPER权限。
服务器还为每个连接的客户端维护一系列会话变量。在连接时使用相应全局变量的当前值对客户端的会话变量进行初始化。对于动态会话变量,客户端可以通过SETSESSIONvar_name语句更改它们。设置会话变量不需要特殊权限,但客户端只能更改自己的会话变量,而不能更改其它客户端的会话变量。
对于全局变量的更改可以被访问该全局变量的任何客户端看见。然而,它只影响更改后连接的客户的从该全局变量初始化的相应会话变量。不影响目前已经连接的客户端的会话变量(即使客户端执行SETGLOBAL语句也不影响)。
可以使用几种语法形式来设置或检索全局或会话变量。下面的例子使用了sort_buffer_sizeas作为示例变量名。
要想设置一个GLOBAL变量的值,使用下面的语法:
mysql>SETGLOBALsort_buffer_size=value;
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。