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

java - Comment optimiser l'interface pour renvoyer de grandes quantités de données?

Description des exigences :

La plate-forme périphérique appelle l'interface pour interroger les informations de recommandation de la liste de chansons de l'utilisateur en fonction du numéro de téléphone mobile. Chaque utilisateur disposera d'environ un millier d'informations recommandées, et chaque information recommandée comprend 歌曲ID、歌曲名称、版权ID、试听地址字段.

Je dois interroger plusieurs tables. Chaque requête prend environ 4 secondes. Une fois la requête terminée, les données doivent être assemblées avant de revenir à l'interface.

Le format de retour est json. Dans ce cas, le retour de l’interface sera plus lent.

J'ai pensé à mettre les données dans le cluster Redis à l'avance, mais plus tard je l'ai rejeté car le nombre d'utilisateurs est d'environ 5 millions et la taille des informations recommandée pour chaque utilisateur est d'environ 200 Ko. Le stockage dans Redis consommera beaucoup de mémoire, donc je l'ai rejeté. Mais je ne vois pas d'autres bonnes solutions. Pourriez-vous s'il vous plaît m'aider à savoir s'il existe de bonnes suggestions sur la façon de répondre à une telle demande ? reconnaissant!

世界只因有你世界只因有你2713 Il y a quelques jours903

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

  • 我想大声告诉你

    我想大声告诉你2017-05-17 10:02:33

    Le goulot d'étranglement est qu'il faut 4 secondes pour interroger de nombreuses tables. Y a-t-il ici un point dans la logique qui peut être optimisé ? Dans le cas contraire, ces 4 secondes doivent être dépensées. Avec d'autres formats de transmission de données, le temps de communication réseau ne peut pas être inférieur à 4 secondes, aussi optimisé soit-il.
    Soit le client envoie une demande de recommandation sans que l'utilisateur en ait conscience, soit la logique de requête est optimisée.

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-17 10:02:33

    Pour une requête de liste chaînée, publiez votre SQL Pourquoi ne pas interroger séparément ? Je suppose que tu passes beaucoup de temps en SQ

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-17 10:02:33

    1. Retourner mille articles à la fois ? Serait-il plus rapide de faire 50 éléments à la fois ? Qu'en est-il des demandes de radiomessagerie multiples ?
    2. Je pense qu'il est inapproprié de désactiver directement la solution de mise en cache. Tous les utilisateurs disposant de plus de 500 W ne sont pas des utilisateurs actifs. Redis est-il acceptable pour estimer le nombre d'utilisateurs actifs ?
    3

    répondre
    0
  • 某草草

    某草草2017-05-17 10:02:33

    Ajoutez l'attribut ID à [Informations recommandées] et enregistrez-le dans Redis. Ce montant ne doit pas être important.

    Les informations recommandées par chaque utilisateur sont également stockées dans Redis, mais seuls les identifiants de 1 000 [informations recommandées] sont enregistrés.

    Dans ce cas, les informations recommandées par chaque utilisateur ne feront pas 200 Ko.

    répondre
    0
  • Annulerrépondre