php并发对MYSQL造成压力的解决方法


Posted in PHP onFebruary 21, 2013

PHP页面有一个浏览量统计每秒有200并发,造成insert给mysql造成很大压力

lnmp环境,其他页面内容都做了缓存了,没有多大的负载,就是这个浏览量统计功能,给mysql带来不小的压力,请问诸位有什么解决办法吗?

怎么都说不要用MySQL来做,每秒200并发对MySQL来说不算啥难事啊。而且换成Redis、Memcached,持久化姑且不说,业务代码和运维部署量都不小。

我给你几个建议,尽量让你的运维部署和业务代码改动小一些。

你可以做主从分离,不要在一个库上高并发插入同时还做大量统计运算。分离之后,查询在从库是做(甚至是导入Hive之类专门的分布式系统来做),主库上可以去掉索引,提升插入的性能。这个方法,业务代码几乎不用任何改动(改个数据库配置文件就好了)。MySQL运维部署也可以选个业务低谷在线做。

如果你可以接受少量业务代码(PHP)改动,还有两个建议:
1. 分库,分表,每个表的数据总量小了,操作起来性能会好一些,特别是对从库的MyISAM表。你插入之前可能会有一些查询,例如查询这个IP在不在库里,以前统计过没。
2. 使用HandlerSocket插件,绕过SQL Parser,直接操作存储文件。如果业务上有可能,还可以使用bulk insert(批量插入)。MySQL InnoDB还推出了类似HandlerSocket的InnoDB NoSQL Plugin,用的memcached协议,共享InnoDB Buffer,再也不用操心MySQL和Memcached之前怎么维护数据一致性了。

PHP 相关文章推荐
PHP截取中文字符串的问题
Jul 12 PHP
PHP与SQL注入攻击[二]
Apr 17 PHP
php实现网站插件机制的方法
Nov 10 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
PHP使用递归生成文章树
Apr 21 PHP
Smarty最简单实现列表奇偶变色的方法
Jul 01 PHP
php验证手机号码
Nov 11 PHP
php 获取xml接口数据的处理方法
May 31 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
Mar 21 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
php连接mssql数据库的几种方法
Feb 21 #PHP
PHP递归调用的小技巧讲解
Feb 19 #PHP
PHP递归返回值时出现的问题解决办法
Feb 19 #PHP
PHP递归算法的详细示例分析
Feb 19 #PHP
七款最流行的PHP本地服务器分享
Feb 19 #PHP
浅析PHP递归函数返回值使用方法
Feb 18 #PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 #PHP
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
php生成无限栏目树
2017/03/16 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
php判断目录存在的简单方法
2019/09/26 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
在vue项目中集成graphql(vue-ApolloClient)
2018/09/08 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
python实用代码片段收集贴
2015/06/03 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
军神教学反思
2014/02/04 职场文书
眼镜促销方案
2014/03/15 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
借名购房协议书范本
2014/10/06 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书