关于MySQL的全局变量与会话变量的一些思考
系统变量又分为全局变量与会话变量。
全局变量在MYSQL启动的时候由服务器自动将它们初始化为默认值,这些默认值可以通过更改my.ini这个文件来更改。
会话变量在每次建立一个新的连接的时候,由MYSQL来初始化。MYSQL会将当前所有全局变量的值复制一份。来做为会话变量。(也就是说,如果在建立会话以后,没有手动更改过会话变量与全局变量的值,那所有这些变量的值都是一样的。)
全局变量与会话变量的区别就在于,对全局变量的修改会影响到整个服务器,但是对会话变量的修改,只会影响到当前的会话(也就是当前的数据库连接)。
我们可以利用
show session variables;
语句将所有的会话变量输出:(可以简写为show variables,没有指定是输出全局变量还是会话变量的话,默认就输出会话变量。)
mysql> show global variables;
我只转以上的部分, 具体的看 稻香博客
我有一个疑问就是: session变量是由当前全局变量的值复制一份来作为session变量, 而且我没有手动更改过session变量与global变量的值,
为什么有的变量session和global的不一样呢?
比如:
而我当前并没有use 到任何数据库。