java - 游戏排行实现?
巴扎黑
巴扎黑 2017-04-17 17:52:39
0
4
1131

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

巴扎黑
巴扎黑

répondre à tous(4)
小葫芦

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.

洪涛

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

伊谢尔伦

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.

伊谢尔伦

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

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