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 相关文章推荐
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
php三维数组去重(示例代码)
Nov 26 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
深入浅析php json 格式控制
Dec 24 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 PHP
PHP中递归的实现实例详解
Nov 14 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
php定期拉取数据对比方法实例
Sep 22 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
上传多个文件的PHP脚本
2006/11/26 PHP
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
php 生成WML页面方法详解
2009/08/09 PHP
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
javaScript基础详解
2017/01/19 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
python中Genarator函数用法分析
2015/04/08 Python
python链接Oracle数据库的方法
2015/06/28 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
keras之权重初始化方式
2020/05/21 Python
Python pip 常用命令汇总
2020/10/19 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
应聘销售主管的求职信
2014/04/26 职场文书
旅游节目策划方案
2014/05/26 职场文书
水电施工员岗位职责
2015/04/11 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
nginx日志格式分析和修改
2022/04/28 Servers