您好,匿名用户
随意问技术百科期待您的加入

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

+2 投票

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

用户头像 提问 2013年 1月24日 @ 正能量 上等兵 (297 威望)
分享到:

1个回答

+1 投票
 
最佳答案

每秒200并发对MySQL来说不算啥难事啊。

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

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

如果你可以接受少量业务代码(PHP)改动,还有两个建议:

  1. 分库,分表,每个表的数据总量小了,操作起来性能会好一些,特别是对从库的MyISAM表。你插入之前可能会有一些查询,例如查询这个IP在不在库里,以前统计过没。
  2. 使用HandlerSocket插件,绕过SQL Parser,直接操作存储文件。如果业务上有可能,还可以使用bulk insert(批量插入)。MySQL InnoDB还推出了类似HandlerSocket的InnoDB NoSQL Plugin,用的memcached协议,共享InnoDB Buffer,再也不用操心MySQL和Memcached之前怎么维护数据一致性了。
用户头像 回复 2013年 1月24日 @ Ares 上等兵 (353 威望)
选中 2013年 1月24日 @Saber
提一个问题:

相关问题

0 投票
1 回复 125 阅读
0 投票
1 回复 49 阅读
0 投票
1 回复 51 阅读
用户头像 提问 2012年 12月1日 @ Sejuani 上等兵 (427 威望)
0 投票
1 回复 46 阅读
用户头像 提问 2012年 12月1日 @ Lady 上等兵 (162 威望)
0 投票
1 回复 67 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...