现今不论是电商网站还是热门论坛或者其他的应用程序都涉及到大数据和高并发问题,例如电商网站的秒杀、抢购等等,在此针对自己了解过的资料做个浅显的总结:
主要是关于php开发方向的:
大数据处理:
代码层面:
1、前端:
(1)减少大图片的应用和复杂js的加载,提升页面的访问速度
(2)通过js插件等工具实现页面图片的延迟加载或者预加载
2、后端:
(1)减少数据库的查询,应用php程序自带的缓存机制对数据进行缓存
(2)在书写查询语句的时候减少使用*等通配符
(3)使用php函数的时候,尽量减少那些耗资源的函数的使用,比如数组合并的array_merge()函数
(4)在where语句的后面尽量减少计算语句和子查询语句
服务器层面:
1、使用缓存机制memorycache和redis(memorycache是使用的内存缓存机制,redis是使用的内存和文件相结合的缓存机制),一般memorycache适用于大于100k的数据的快速缓存,而redis是小于100K的时候性能较好,若要进行持久性缓存,推荐使用redis缓存机制,二种缓存机制都需要在服务器端安装配置,并且开启php扩展支持
2、使用服务器的负载均衡机制(实现代码层和数据库层的服务器分离,同时实现主从数据库设计,在主数据库中添加事务,实时同步从属数据库的数据,同时实行单点登录设计解决跨服务器问题,用session或者零时数据表的方式)
高并发处理:
1、mysql使用事务处理和锁机制(Innodb引擎使用的是行锁,MyIsam引擎使用的是表锁)
2、使用非关系型数据库NoSql进行处理,关系型数据库返回的是对象,而非关系型数据库返回的是数组或者序列化字符串
其他待后续完善.....