recherche

Maison  >  Questions et réponses  >  le corps du texte

mysql - des dizaines de millions de pagination de données, lorsque le décalage s'avère plus important, comment optimiser la vitesse ?

Prenons MySQL comme exemple. Généralement, lorsque la quantité de données est relativement importante, le décalage sera plus important lors de la pagination et l'efficacité des requêtes sera inférieure

.

Par exemple, si une publication contient 2 millions de commentaires et que 10 sont affichés sur chaque page, il y a 200 000 pages. Comment les données doivent-elles être traitées lorsque 200 000 pages sont prises ? Existe-t-il un bon moyen de résoudre cette demande ?

Exemple : NetEase Music, le nombre maximum de commentaires pour une seule chanson est supérieur à 1,4 million et la vitesse de pagination est très bien gérée,

伊谢尔伦伊谢尔伦2739 Il y a quelques jours862

répondre à tous(2)je répondrai

  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:50:01

    Premièrement, je crois que la façon dont NetEase Music lit les données consiste définitivement à utiliser nosql pour lire les données.
    Bien sûr, si la fréquence d'accès à votre table de données n'est pas élevée, vous pouvez toujours lire la base de données directement. Bien sûr, la bibliothèque mysql innodb a une faiblesse en matière de triche, c'est-à-dire que plus le nombre de pages que vous interrogez est grand, plus l'effet est faible. . Nous utilisons donc généralement l'identifiant pour améliorer l'effet de la requête. L'ancienne utilisation de la requête est la limite de 100 000,10. L'utilisation de la requête recommandée est celle où l'identifiant est supérieur à 100 000. Cela garantit l’utilisation de l’index.
    Bien sûr, vous pouvez utiliser la forme de sous-tableaux pour réduire les données dans une seule table, améliorant ainsi l'efficacité des requêtes

    répondre
    0
  • PHPz

    PHPz2017-05-18 10:50:01

    Si vous utilisez Redis, vous devez stocker les ID dans la liste, puis utiliser Redis pour obtenir un fragment de la liste, puis utiliser l'ID dans le fragment vers MySQL pour interroger les résultats.

    Bien sûr, si vous souhaitez ajouter un tri, il n'y a aucun moyen.

    répondre
    0
  • Annulerrépondre