java - Comment optimiser l'interface pour renvoyer de grandes quantités de données?
世界只因有你
世界只因有你 2017-05-17 10:00:33
0
4
928

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!

世界只因有你
世界只因有你

répondre à tous(4)
我想大声告诉你

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.

洪涛

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

给我你的怀抱

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

某草草

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal