又拍网学习总结

编程入门 行业动态 更新时间:2024-10-15 02:32:49

又拍网学习总结

又拍网学习总结

1、  比较耗时的操作不宜采用php,而是应该采用python才进行操作:例如发送邮件、建立索引、数据聚合和好友推送;

2、  使用消息队列RabbitMQ;

3、  分裤设计(拆分方式,垂直拆分和水平拆分):

a)         水平拆分,拆分算法,建立统一的索引,即建立索引表,保存用户ID和对应的数据库表;每次对用户ID进行操作的时候,首先从索引表中获取对应的数据库表ID。采用这种的坏处在于每次对用户数据进行操作的时候,都需要从数据库中select数据,增加数据的读压力,可以尝试在mysql前面添加memcache,来缓存用户的查询信息,因为用户ID索引对应的数据库表ID是恒久不变的,所以将信息放到memcache中,数据的命中率应该是相当高的。所以很大程度上减少了性能损失。

b)        带来的问题

                        i.              要查询好友的数据,但是不能保证所有好友的数据都放置在一个数据表中,所以进行多次查询,然后再进行聚合操作。

c)         保证数据ID是唯一的

由于将数据在分开放置在不同的是数据表中,所以采用auto_increament的方式,因为不能保证不同数据库表中的自增长。可以采用的方式是:建立一个空表建立一个唯一的索引,每次插入数据时都向这个表中插入数据,然后获取ID,从而可以获得一个全局唯一的ID,而且要定期清空这个表中的数据,来保证数据库插入的效率比较高;

4、  数据库部署

使用两台数据库来做master,当然master 之后也有 slave,两台master之间是配置成相互复制的。虽然是Master-Master部署方式,但是同一时间我们还是只能使用其中的一个,原因是复制的延迟的。所以在访问数据时,仍然是采用对应的用户ID访问对应的数据库。

更多推荐

又拍网学习总结

本文发布于:2024-02-06 17:27:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750325.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:又拍网

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!