我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

PHP与MySQL结合处理千万级数据

本文主要介绍《PHP结合MySQL处理千万级数据》,希望能够解决大家遇到的问题,下面就一起来看看《PHP结合MySQL处理千万级数据》这篇文章吧。

Mysql表分区思路

PHP结合MySQL处理千万级数据

1亿订单的表可以分成5张表,这样每张表只有2000万数据,分担原表的压力。需要根据一定的条件进行分表,这里可以按照地域进行分表,需要一个中间件来控制去哪个表找你想要的数据。

中间件:使用主表的自增id作为中间件(什么样的字段适合做中间件?一定要唯一)

如何分配?插入到主表之后,返回一个id,根据这个id和表个数求模,将数据插入到有余数的表中。

注意:子表中的id必须与主表中的id一致

将来,只有插入操作才会使用主表。修改、删除和读取操作都不需要主表。

PHP结合MySQL处理千万级数据

redis 消息队列

1.什么是消息队列?

消息传播过程中存储消息的容器

2.消息队列出现的历史原因

PHP结合MySQL处理千万级数据

消息队列的特点:先进先出

需要执行的SQL语句先保存在消息队列中,然后按顺序异步插入到数据库中。

应用:新浪,先将即时评论放入消息队列,再通过计划任务将消息队列中的SQL语句按顺序插入到数据库中

修订

修改操作子表

PHP结合MySQL处理千万级数据

这样修改有一个问题,主表和子表的数据会不一致,如何让主表和子表的数据一致呢?

Redis队列保持主表与子表数据一致

修改完成后会修改主表的数据,并存入redis队列中

PHP结合MySQL处理千万级数据

然后linux定时任务()循环执行redis队列中的sql语句,并同步更新主表的内容

PHP结合MySQL处理千万级数据

mysql 分布式表(查看、删除)

查询只需要查询子表,不需要查询主表

PHP结合MySQL处理千万级数据

删除,先根据ID找到需要删除的子表,然后删除,然后push一条删除总表数据的SQL语句到消息队列中

然后执行计划任务删除总表数据

PHP结合MySQL处理千万级数据

计划任务:

PHP结合MySQL处理千万级数据

MySQL分布式数据库分区思路

PHP结合MySQL处理千万级数据

库分布示意图:

PHP结合MySQL处理千万级数据

PHP结合MySQL处理千万级数据

MySQL分布式数据库(增加)

PHP结合MySQL处理千万级数据

注意:操作完一个数据库后,必须关闭数据库连接,否则MySQL会认为你一直连接着同一个数据库

或者取模来确定加载哪个配置文件、连接哪个数据库

PHP结合MySQL处理千万级数据

mysql分布式数据库(修改)

与新品原理相同

PHP结合MySQL处理千万级数据

mysql分布式数据库(查看、删除)

类似原理

PHP结合MySQL处理千万级数据

删除

PHP结合MySQL处理千万级数据

执行队列

mysql分布式缓存的应用()

将数据放入缓存,节省数据库开销,先检查缓存,如果可用,直接取出,如果没有,再检查数据库,然后存入缓存。

PHP结合MySQL处理千万级数据

当编辑信息之后,需要删除缓存,否则读取到的永远是缓存的数据,而不是修改后的数据。

PHP结合MySQL处理千万级数据

《PHP结合MySQL处理千万级数据》的介绍到此结束,希望大家支持编程宝库。

下节:MySQL基本架构及解决长连接内存占用问题的两种方案分享MySQL教程

本文主要介绍了《MySQL的基本架构以及解决长连接内存占用问题的两种方案》,希望能够解决大家遇到的问题,一起来看看这篇《MySQL的基本架构以及解决长连接内存占用问题的两种方案》吧...

二维码
扫一扫在手机端查看

本文链接:https://by928.com/6626.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线