recherche

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

java - 游戏排行实现?

实现一个排行榜显示当前我的排行名次,还有我前5名和我后5名;
数据量几十万,用mysql,按表里一个score字段排序,怎么sql才没有效率问题?

巴扎黑巴扎黑2889 Il y a quelques jours1159

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

  • 高洛峰

    高洛峰2017-04-17 17:54:39

    La quantité de données est de centaines de milliers. Utilisez MySQL pour trier par champ de score dans le tableau... Vérifiez et crachez à chaque fois que les E/S du disque vous suffisent, et il n'est pas nécessaire de prendre en compte les entrées/sorties du disque. efficacité de la requête SQL.
    Il n'est pas nécessaire de prendre en compte les problèmes de performances avec les données froides. Je suppose qu'il s'agit de données chaudes. N'utilisez pas MySQL pour vérifier, utilisez Redis, cela peut être facilement fait avec un SortedSet.

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-17 17:54:39

    Dans ce cas, le problème d'efficacité ne peut pas être résolu au niveau SQL

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:54:39

    Exportez les données et utilisez un langage de programmation pour implémenter l'algorithme de tri rapide. Vous ne pouvez pas vous attendre à ce que SQL implémente efficacement divers algorithmes de tri et les utilise simplement.

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:54:39

    Ce sujet est intéressant, mais avez-vous suffisamment de questions ? Étant donné que la quantité de données s'élève à des centaines de milliers, si nous trions uniquement par scores, la plupart des gens peuvent avoir le même score. Même si les scores atteignent des millions, les 5 premiers et les 5 derniers peuvent tous avoir le même score.

    Par exemple, les jeux actuels de Tencent sont tous classés dans le cercle d'amis. C'est un autre problème, c'est très technique

    répondre
    0
  • Annulerrépondre