加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL运维实战之PHP访问MySQL你使用对了吗

发布时间:2019-03-12 08:00:51 所属栏目:MySql教程 来源:阿里云云栖社区
导读:大家都知道,slow query系统做的好不好,直接决定了解决slow query的效率问题 一个数据库管理平台,拥有一个好的slow query系统,基本上就拥有了解锁性能问题的钥匙 但是今天主要分享的并不是平台,而是在平台中看到的奇葩指数五颗星的slow issue 好了,关

如何验证业务方是否将prepare修改为local了呢?

  1. dba:(none)> show global status like 'Com_stmt_prepare';  
  2. +------------------+-----------+  
  3. | Variable_name | Value |  
  4. +------------------+-----------+  
  5. | Com_stmt_prepare | 716836596 |  
  6. +------------------+-----------+  
  7. 1 row in set (0.00 sec) 

通过观察,发现这个值没有变化,说明调整已经生效

总结

  •  prepare的优点 
  1. 1. 防止SQL注入  
  2. 2. 特定场景下提升性能  
  3.  什么是特定场景: 就是先去服务端用占位符占位,后面可以直接发送请求来填空(参数值)  
  4.  这样理论上来说, 你填空的次数非常多,性能才能发挥出来 
  •  prepare的缺点 
  1. 1. 在服务器端的prepare毕竟有消耗,当并发量大,频繁prepare的时候,就会有性能问题  
  2. 2. 服务端的prepare模式还会带来的另外一个问题就是,排错和slow 优化有困难,因为大部分情况下是看不到真实query的  
  3. 3. 尽量设置php-pdo为 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,true) ,在本地prepare,不要给服务器造成额外压力 
  •  建议 
  1. 1. 默认情况下,应该使用php-pdo的默认配置,采用本地prepare的方式,这样可以做到防SQL注入的效果,性能差不到哪里去  
  2. 2. 除非真的是有上述说的特定场景,可以考虑配置成服务器prepare模式,前提是要做好测试  

【编辑推荐】

  1. PingCAP CTO 黄东旭:我眼中的未来数据库技术趋势
  2. 3 月数据库排行:MySQL 指数持续大涨,PostgreSQL 下跌
  3. 推荐 | 超实用的MySQL数据库乱码问题的对应方式
  4. 数据库之分库分表-垂直?水平?
  5. 什么影响了数据库查询速度、什么影响了MySQL性能?
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读