访问统计的数据库设计
用户向系统申请,系统会随机给用户生成一个不重复的短网址 xx.xx.xx/abced1用于编辑内容(其中abcde1就是短网址标识,称coding)
现在要统计所有coding的访问记录。
目前有一张access_log表,每当某个coding的短网址被访问时,先是根据UA信息、ip地址、有效时间经过算法得到一个uvmark(访客标识),如果表里已经有相同的uvmark,表示是同一个人访问了多次,此时不做insert记录,而是update该条数据的number字段+1。不过没有uvmark,就添加insert一条记录(记录包括coding.访问的设备.系统环境.浏览器环境.访问城市.访问时间等等)
但是随着访问量的增大,表里的数据已经非常多了。将近9000万条数据,每天增量大概200万。统计一些扫描量大的码,比如按时间的sql是这样的: select number from access_log where coding = XXXX and time between time_start and time_end
取出来的数据 uv就是条数的数量 pv就是每条的number相加(按地域.环境等等同理) 效率比较低。如果一个短网址每天平均有2W的访问量,那么我要统计他最近一个月的访问量,需要的时间达到50S以上
随便找了个coding的访问统计。如下
我这么做有问题吗? 有可以优化的地方吗?像百度统计这种的数据库设计是怎样的,为什么感觉他们的非常快。
回复讨论(解决方案)
每天总结一下,过去的访问量直接取总结的结果,而不是从头统计
每天总结一下,过去的访问量直接取总结的结果,而不是从头统计
可是有一个模块是实时统计的,就是在某一天里,每半小时的数据也是有的。总结掉的话,我想知道30天之前的某一天的24小时实时统计怎么算
30天之前的某一天 还是实时吗?
显然就不是了!
除了今天的数据会发生变化以外,过去的任何一天的数据多不会发生变化(过去了就过去了)
所以你只要按统计方案记录下统计结果就可以了
30天之前的某一天 还是实时吗?
显然就不是了!
除了今天的数据会发生变化以外,过去的任何一天的数据多不会发生变化(过去了就过去了)
所以你只要按统计方案记录下统计结果就可以了
那我要知道8月1号 9点到12点的数据呢
那没关系,你按每小时一统计,一天的才24条记录
你也可以按每分钟,甚至每秒钟一统计,都会比你重新从原始数据中汇总起来要快
那没关系,你按每小时一统计,一天的才24条记录
你也可以按每分钟,甚至每秒钟一统计,都会比你重新从原始数据中汇总起来要快
受教。 哦对了,那对于其他统计方式怎么每天总结呢,比如地区统计呢。既有时间条件又有地区条件
每个省下有市
这些数据我要怎么总结呢
你这些数据是怎么计算得来的?
1+1 会算,10+10 就不会算啦?
你这些数据是怎么计算得来的?
1+1 会算,10+10 就不会算啦?
第一种是只有单条件的(时间),我可以把每小时 每个短网址的pv uv都存一条数据。
第二种是多条件的(时间与地点),我按每小时来总结数据,我需要把每小时 每个短网址 按照地区存N条数据 是这样吗
以 #6 下图的苏州为例:访问量519 表示的是迄今为止的访问量,而明天的访问量是 519 + n
这个不会有疑问吧?
那么到了明天,今天的这个 519 还会变吗?显然是不会变的

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Alipay Php ...

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.
