首页 » 网站推广 » phpmysql并发解决计划技巧_MySQL 数据库高并发解决筹划

phpmysql并发解决计划技巧_MySQL 数据库高并发解决筹划

访客 2024-11-09 0

扫一扫用手机浏览

文章目录 [+]

那么办理问题,就得说到方案。
但是方案有很多,我们该怎么选择呢?

优化与方案

基本上,我们优化要从几个关键字入手:短间隔,少数据,分散压力。

phpmysql并发解决计划技巧_MySQL 数据库高并发解决筹划

短间隔

所谓的短间隔,指的是从前端到数据库的路径要短。

phpmysql并发解决计划技巧_MySQL 数据库高并发解决筹划
(图片来自网络侵删)
页面静态。
有些页面的数据是在某些时段是不变的,那么这个页面可以静态化,这样可以提高访问的速率。
利用缓存。
缓存大家都知道,快的缘故原由便是基于内存。
以是利用基于内存的缓存的话,可以减少对数据库的访问,同时加速访问速率。
批量读取。
高并发的情形下,可以将多个要求的查询合在一次进行,以减少对数据库的访问速率。
延迟修正。
延迟修正的意思高并发的情形西可能是将多次修正数据放在缓存中,然后定时将缓存中的数据过更新到数据库;也可以是通过缓存的同步策略通过解析异步同步到数据库中。
利用索引。
这个不用说了,索引有着比较多的类型,例如普通索引/主键索引/组合索引/全文索引等。

少数据

所谓的少数据,实在是查询的数据要少。

分表。
所谓的分表,实在有水平切分和垂直拆分。
玩过单机的小伙伴都知道,每每一些具有历史性的表单,都会有成百上千万级别的数据。
这样子对付 MySQL 来说,纵然是加了索引,SQL 方面连续优化,也很难做到更快的查询速率。
那么我们可以通过分表的操作来实现。
例如说最常见的我们可以根据韶光的维度来进行表的水平拆分,今年的数据保持下来,而去年的数据可以存在其余一个表里。
分离生动数据。
实在这个有点类似缓存,但是不同之处在于数据还是在 MySQL 上面的。
例如一个查询商品的业务,有一些火爆/常常被搜索的商品可以存在一张生动表。
查询的时候先查询生动表,没有的话再查询总商品表。
分块。
这个分块有点类似于算法里面的“索引顺序查找”。
通过数据层面的优化,将数据放在不同的块中,而我们只须要打算找到对应的块就行了。
分散压力

所谓的分散压力,实在是分散不同数据库做事器的压力

集群。
集群的观点相信大家都很清楚,对付业务做事器来说实在便是具备相同业务流程的做事器支配多台,通过负载均衡或其他办法来将要求分配到不同做事器。
而数据库也一样,通过特定的规则策略将数据导向特定的数据库做事器上。
分布式。
所谓的分布式,实在便是将原来处于同个流程的业务逻辑分配到不同的做事器上面实行,达到了“并发”实行的效果,加快实行速率。
分库分表。
分库分表紧张是水平拆分和垂直拆分。
对付访问频率高而数据量巨大的单表,可以减少单表的数据,根据特定的维度进行水平拆分,增加数据库的吞吐量,这便是分表水平拆分;而对付业务耦合性低的多表来说,可以将不同的表存储在不同的数据库上,对数据库进行垂直拆分,提高数据库写的能力,即分库的垂直拆分。
建立主从。
建立主从的目的实在便是为了读写分离。
我们都知道,只要数据库的事务级别够高,那么并发读是不会影响到数据的混乱,而并发写则会。
以是建立主从一样平常来说,写会留在主理事器上写,而会在从做事器上读。
以是基本上让主理事器进行事务性操作,从做事器进行 select 查询。
这样子的话,事务性操作(增加/删除/修正)导致的改变更新同步到集群中的从数据库。

原文链接:https://juejin.im/post/6869265425696292871

标签:

相关文章

php编程指针技巧_10分钟掌握C措辞指针

在讲指针之前,我们先来理解下变量在「内存」中是如何存放的。在程序中定义一个变量,那么在程序编译的过程中,系统会根据你定义变量的类型...

网站推广 2024-12-07 阅读0 评论0

solrphpword文档技巧_Solr82入门

Solr 是Apache下的一个顶级开源项目,采取Java开拓,它是基于Lucene的全文搜索做事器。Solr供应了比Lucene...

网站推广 2024-12-07 阅读0 评论0