linux-PHP页面有一个浏览量统计每秒有200并发,造成insert给mysql造成很大压力
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-PHP页面有一个浏览量统计每秒有200并发,造成insert给mysql造成很大压力,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2558字,纯文字阅读大概需要4分钟。
内容图文
![linux-PHP页面有一个浏览量统计每秒有200并发,造成insert给mysql造成很大压力](/upload/InfoBanner/zyjiaocheng/235/93bbf220cb314c8aa389a8a25c0f37d4.jpg)
回复内容:
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之前怎么维护数据一致性了。
这种事情不要用MySQL做。弄个redis或者memcachedb就好了。
直接log在文件里不就可以了。。。何必一定mysql。。。
先存放在memcached里面 然后 比如到100次再写入数据库,每天来次统计,把没有满足100的数据一起统计到mysql里面
可以搞个队列慢慢插啊
定时数一下log,做个标记,然后再写进MySQL
方案一:直接写文件,每天跑一次脚本统计总数(并发太高的话,IO可能受不了)
方案二:把日志到写队列,由一个后端服务器从队列然后写到mysql,每天跑脚本统计总数
方案二:使用开源的日志收集服务程序
不要立刻写入mysql,可以先写入一个文本中,每增加一定数量如100次,写一次数据库
1. 不要用php来做,用nginx来做
2. php写入缓存系统,然后定时从缓存系统往数据库刷数据
3. 用 redis
感觉可以拿redis在前面给mysql挡一下先。
浏览量统计这类型的操作并不适合实时写数据库,即使当时撑住了,其架构的扩展性也不够好,建议还是做好归并,减少写DB的频率。
思路好像不对啊。
页面浏览量统计通常不这样做,因为页面浏览这种数据不是完全准确的,有些可能是搜索引擎访问的,所以不需要弄得这么精确。
可以参考下面这篇文章:(网站统计中的数据收集原理及实现)
http://developer.51cto.com/art/201210...
对实时性没要求的话可以直接分析 nginx 日志来做页面访问量统计。
最简单的方法是用blackhole引擎,这个的插入速度非常快~
具体的可以看:
http://dev.mysql.com/doc/refman/5.0/e...
用redis解决,以文章id作为key,每浏览一次值加1,每隔半个小时再写到mysql里面。
浏览量统计这类型的操作并不适合实时写数据库,即使当时撑住了,其架构的扩展性也不够好,建议还是做好归并,减少写DB的频率。
内容总结
以上是互联网集市为您收集整理的linux-PHP页面有一个浏览量统计每秒有200并发,造成insert给mysql造成很大压力全部内容,希望文章能够帮你解决linux-PHP页面有一个浏览量统计每秒有200并发,造成insert给mysql造成很大压力所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。