Actuellement, j'utilise mysql pour consigner tout le trafic provenant de tous les utilisateurs entrant dans un site Web que je gère. La base de données a atteint près de 11 millions de lignes par mois et les requêtes deviennent assez lentes. Existe-t-il un moyen plus efficace de consigner les informations sur les utilisateurs? Tout ce que nous stockons est leur demande, useragent, et leur ip, et en l'associant à un certain site web.Quel est le moyen le plus efficace de suivre tout le trafic utilisateur dans une base de données?
Répondre
Pourquoi ne pas essayer Google Analytics? Même si vous ne pensez pas que ce serait suffisant pour vous, je vous parie qu'il peut suivre 99% de ce que vous voulez être suivi.
La réponse dépend entièrement de ce que vous prévoyez d'extraire du côté de la requête. Cherchez-vous des informations agrégées, cherchez-vous toute l'histoire ou seulement une partie? Souvent, si vous devez regarder chaque ligne pour trouver ce dont vous avez besoin, le stockage dans les fichiers texte de base est le plus rapide.
Je dois généralement tirer des hits uniques, ou parfois le trafic aura un numéro associé, et J'ai besoin de trouver la somme de tout le trafic au-dessus d'un certain nombre. (Désolé je suis intentionnellement vague sur la nature du site lol) – Brendan
Si vous déterminez l'unicité via IP, assurez-vous que vous utilisez inet_aton et le stockage comme non signé int Puis indexez ce champ. – Gary
Quels sont les types de requêtes que vous souhaitez exécuter sur les données? Je suppose que la plupart de vos requêtes sont sur des données dans la fenêtre de temps actuelle ou récente. Je suggère d'utiliser le partitionnement basé sur le temps de la table. Cela rendra ces requêtes plus rapides car les requêtes ne toucheront que la partition contenant les données, ce qui réduit la recherche de disque. Egalement régulièrement purger les anciennes données et les mettre dans des tableaux récapitulatifs. Quelques liens utiles sont:
la façon la plus efficace est sans doute d'avoir apache (en supposant que c'est ce que le site est en cours d'exécution sur) il suffit d'utiliser le construit dans l'exploitation forestière au texte des journaux et configurez quelque chose comme AWStats. Cela supprime le besoin de consigner vous-même ces informations et devrait vous fournir les informations que vous recherchez - probablement toutes configurées dans les rapports existants. L'avantage de ceci sur quelque chose comme Google Analytics serait son suivi côté serveur - etc.
Peut-être en indiquant l'évidence mais avez-vous un bon index par rapport aux querys que vous faites?
1) Utilisez Piwik pour effectuer le suivi de type Google Analytique, tout en conservant le contrôle des données MySQL.
2) Si vous devez continuer à utiliser votre propre système, utilisez InnoDB Plugin pour prendre en charge les types de tables compressées. De plus, convertissez IP en entier non signé, convertissez à la fois l'agent utilisateur et la requête en tables de recherche int référencées par int qui sont compressées à l'aide de la compression Innodb ou du moteur d'archivage.
3) Ignorer le partitionnement et partitionner le DB par mois.
C'est ce que «Data Warehousing» est pour. Pensez à acheter un bon livre sur l'entreposage.
Collectez les données brutes dans un schéma "activité actuelle".
Régulièrement, déplacez-le dans un schéma en étoile "warehouse" (ou "datamart") qui est (a) séparé du schéma d'activité actuel et (b) optimisé pour les requêtes count/sum/group-by. Déplacer, BTW, signifie insérer dans le schéma d'entrepôt et supprimer du schéma d'activité actuel. Séparez votre traitement transactionnel en cours de votre requête/traitement analytique.
- 1. Quel est le moyen le plus efficace pour restaurer plusieurs bases de données dans SQL 2008
- 2. quel est le moyen le plus efficace d'écraser bitmapdata
- 3. Quel est le moyen le plus efficace de stocker des objets dans une base de données SQLCe?
- 4. Quel est le moyen le plus efficace de migrer ces données dans Sql Server?
- 5. Le moyen le plus efficace de nommer un avatar utilisateur?
- 6. Quel est le moyen le plus efficace d'identifier et de remplacer un objet dans une ObservableCollection?
- 7. Quel est le moyen le plus efficace de créer une conversation vidéo sur le Web?
- 8. Quel est le moyen le plus efficace d'implémenter la recherche plein texte sur une base de données sqlite?
- 9. Quel est le sélecteur le plus correct/le plus efficace?
- 10. Quel est le moyen le plus efficace de trier une collection d'articles dans des seaux?
- 11. Quel est le moyen le plus efficace de faire une recherche fulltext pondérée dans MYSQL?
- 12. Quel est le moyen le plus sec d'obtenir des données de ma base de données?
- 13. Quel est le moyen le plus efficace pour charger DirectoryEntry d'un utilisateur?
- 14. Quel est le moyen le plus efficace de gérer un grand nombre de lignes dans OpenGL?
- 15. Quel est le moyen le plus efficace de suivre la position du curseur de la souris sur Windows?
- 16. Quel est le moyen le plus efficace pour stocker et analyser des données dans AS3?
- 17. Quel est le moyen le plus efficace d'obtenir des données d'un modèle dans CakePHP?
- 18. Quel est le moyen le plus efficace d'interroger la base de données en fonction d'une liste de valeurs?
- 19. Le moyen le plus rapide de suivre l'accès API
- 20. Quel est le moyen le plus efficace d'accéder à d'autres contrôles de formulaires dans .NET?
- 21. Quel est le moyen le plus efficace pour gratter les données d'un site Web (en PHP)?
- 22. Quel est le moyen le plus efficace de gérer une session expirée avec ASP.NET 2.0
- 23. Quel est le moyen le plus efficace de mémoriser le statut de lecture/non lu sur plusieurs éléments?
- 24. Quel est le moyen le plus efficace de tronquer un nombre pour une précision spécifique?
- 25. Quel est le moyen le plus efficace de stocker des balises d'analyse?
- 26. Quel est le moyen le plus efficace de faire des tableaux d'octets immuables dans Scala?
- 27. Android: Quel est le moyen le plus simple de sauvegarder de petites quantités de données?
- 28. Quel est le moyen le plus efficace pour créer un système d'ampoule de forum (non lu)?
- 29. Le moyen le plus efficace de dessiner dans Silverlight
- 30. Quel est le moyen le plus efficace de combiner plusieurs fichiers flash dans un seul film?
Comment interrogez-vous cette table? (par exemple, résumez-vous toute la table?) En extrayant tous les enregistrements individuels pour un utilisateur? Restriction vos requêtes par exemple sur une période de temps? – nos