I大议mysql变量及其优化.docxVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I大议mysql变量及其优化

大议mysql变量及其优化mysql里的变量分系统变量和用户变量. ? ? ? ? ?? ?系统变量其中系统变量,又分全局(global)和会话(session)两种.全局系统变量,主要影响整个mysql实例的全局设置.大部分变量都是作为mysql的服务器调节参数存在.新增或修改这类变量, 会影响mysql的运行方式.比如: auto_increment_increment 代表序列的自增值, 默认为1另外, mysql中,只有一部分变量是支持运行时动态修改的.变量修改的作用范围,是那些重新创建连接到mysql服务器的客户端连接.如果你的连接是由应用通过连接池来维护的,并且,是长连接的,那么,此时在服务器运行过程中,动态地修改全局变量对你是没有什么影响的.通过全局变量, 我们可以想到一些应用场景:1, ?在存储过程, 函数, sql里,使用一些业务相关的全局变量.经常编写业务相关的存储过程,函数的朋友, 可能会需要针对不同业务,设置能共享访问的全局变量.比如, 公司的总人数,很多存储过程都需要调用这个值,但是因为这个值,不是经常会改变的,不需要每次都count.所以大多数人会考虑把它cache一把,那么mysql提供的全局变量,就是一个好的存储场所.2, ?数据库配置中心?首先,这不一定是一种好的解决方式, 特别是大型地分布式系统.但是想到了,就跟大家分享一下.主要就是利用了三层,四层架构的系统, 必不可少的数据库层来实现的.大家知道, 应用的配置, 大多数是用配置文件或配置服务器来实现, 前者需要跟着项目打包, 部署.后者, 只要在应用初始化或运行时,去配置中心取配置就行了.(淘宝这边两者都在用)而数据库的配置中心, 其实类似配置服务器, 只不过灵活运用了mysql的变量机制.它能继承配置服务器的多数优点, 但最大的特色就是在 sql, function , procedure 里都可以很方便地引用到.(相比用表的方式, 要方便一些)并且本身就具有缓存, 移植得话, mysql得导出也是很快.所以小系统, 想快速得搭建一个配置中心,利用mysql感觉还是不错的.??调用语法:select * from user_info where id = @@global.admin_id — 例子,通过全局里配置的管理员id来取用户信息以下是全局变量的一些常用命令,比较简单:set global auto_increment_increment=1; — 设置序列的增长值show global variables; — ?显示所有的global变量show global variables like ‘%test%’ — 查询包含test字符串的global变量会话系统变量,?主要用于在当前客户端连接的生命周期内.它的变量值是全局变量的一份拷贝.如果连接断开, 对当前会话变量所做修改都会被重置.比如, 服务器会话变量 autocommit 默认为 true , 而你在非常连的客户端连接里设置了 false , 那么在执行完sql后, 连接就会断开. 此后,如果创建新的连接来执行sql, autocommit又会默认 true.会话变量的使用场景与全局类似,只是生命周期不同, 因此可以用来统计同一连接内请求sql次数, sql类型等信息.session变量的一些常用操作:set session auto_increment_increment=1; — 设置序列的增长值show variables; or show session variables; — ?如果不指明, 默认使用session变量show variables like ‘%test%’ or show session variables lile ‘%test%’ — 查询包含test字符串的session变量用户变量基于会话变量实现的, 可以暂存值, 并传递给同一连接里的下一条sql使用的变量.当客户端连接退出时,变量会被释放.应用场景:同一连接,未关闭情况下,帮你暂存一些计算结果.? ?比如select @admin_id:=max(id) from user_info;select * from user_info where id = @admin_id以上两条sql在同一connection中完成.另外,注意,用户变量前只有1个@, 2个@是用于存取系统变量的业务相关的变量定义太多,无法区分系统全局变量???这类问题,可以通过mysql提供的结构化系统变量来解决.他们有独特的表示形式:instance_name.test_var比一般的变量多了一个instance_name.这样,你就可以很方便地对他们进行分类,比如 ?app.test_var,就可以区别于

文档评论(0)

1974wangpeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档