数码资讯
在MySQL中实现高性能的并发计数器(例如,单击文章)
现在有很多项目对计数器的实现非常随意。For example, when we click the number of web articles, we design data tables, such as article_id, article_name, article_content, ar
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
现在有很多项目对计数器的实现非常随意。For example, when we click the number of web articles, we design data tables, such as article_id, article_name, article_content, article_author, article_view...The amount of browsing of this article is recorded in article_view.It seems that there is no problem.For small stations, such as this blog, that's what it does, because can the blogs of the small dish involve concurrent problems答案很明显,一天IP不多,将来也不会很大。
嗯,主要物品的信息,当浏览一个网页,不仅大量的检查(检查上面的记录,有名字的,受欢迎的文章信息审查、标签),但也写(更新通过点击)。具体内容和桌子上反而发展很方便,但会导致压力过大的数据库(或为什么大项目必须拆分表格)。
那么,两张桌子可以存放吗一个表保存文章的细节,而另一个表只保存计数器。
复制代码代码如下所示:
创建表` article_view `(
` article_id ` int(11)不为空,
int(11)不为空,
主键(` article_id `)
InnoDB引擎=);
这样,虽然共享表表的压力,但每次进程请求更新时,都会产生全局独占锁,只能是串行的,而不是并行的。
另一个好方法是,每个文章的计数器不是一行,而是多行,例如,一百行。每次更新一行时,文章的视图数是所有行的和。
复制代码代码如下所示:
创建表` article_view `(
` article_id ` int(11)不为空,
`池塘` tinyint(4)非空评论池用于随机使用,
int(11)不为空,
主键(` article_id `,`池塘`)
InnoDB引擎=);
100随机池小数量更是超过了35。在每次访问时,一个随机数(1-100)作为池塘,池塘的存在以及如何更新视图+ 1,否则,插入,查看= 1.重复键的帮助下,或在该程序实现的是第一选择,判断插入或更新。
复制代码代码如下所示:
插入` article_view `(` article_id `,`池塘`,`观`)值(` 123 `,RAND()* 100, 1)重复
当获得指定文章的总访问量时:
复制代码代码如下所示:
选择和(`观`)从` article_view `哪里` article_id ` = '123
PS:任何事物都是一把双刃剑。为了读得更快,我们通常不得不做出一些牺牲。多读表来加快阅读,写更多的表来加快写作。各自的权衡。在阅读的速度,我们奉献的不只是性能,而且开发成本,更复杂的开发、维护成本,因此不是更快更好的阅读速度,需要找到一个平衡点。
嗯,主要物品的信息,当浏览一个网页,不仅大量的检查(检查上面的记录,有名字的,受欢迎的文章信息审查、标签),但也写(更新通过点击)。具体内容和桌子上反而发展很方便,但会导致压力过大的数据库(或为什么大项目必须拆分表格)。
那么,两张桌子可以存放吗一个表保存文章的细节,而另一个表只保存计数器。
复制代码代码如下所示:
创建表` article_view `(
` article_id ` int(11)不为空,
int(11)不为空,
主键(` article_id `)
InnoDB引擎=);
这样,虽然共享表表的压力,但每次进程请求更新时,都会产生全局独占锁,只能是串行的,而不是并行的。
另一个好方法是,每个文章的计数器不是一行,而是多行,例如,一百行。每次更新一行时,文章的视图数是所有行的和。
复制代码代码如下所示:
创建表` article_view `(
` article_id ` int(11)不为空,
`池塘` tinyint(4)非空评论池用于随机使用,
int(11)不为空,
主键(` article_id `,`池塘`)
InnoDB引擎=);
100随机池小数量更是超过了35。在每次访问时,一个随机数(1-100)作为池塘,池塘的存在以及如何更新视图+ 1,否则,插入,查看= 1.重复键的帮助下,或在该程序实现的是第一选择,判断插入或更新。
复制代码代码如下所示:
插入` article_view `(` article_id `,`池塘`,`观`)值(` 123 `,RAND()* 100, 1)重复
当获得指定文章的总访问量时:
复制代码代码如下所示:
选择和(`观`)从` article_view `哪里` article_id ` = '123
PS:任何事物都是一把双刃剑。为了读得更快,我们通常不得不做出一些牺牲。多读表来加快阅读,写更多的表来加快写作。各自的权衡。在阅读的速度,我们奉献的不只是性能,而且开发成本,更复杂的开发、维护成本,因此不是更快更好的阅读速度,需要找到一个平衡点。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。