Rumah > Soal Jawab > teks badan
实现一个排行榜显示当前我的排行名次,还有我前5名和我后5名;
数据量几十万,用mysql,按表里一个score字段排序,怎么sql才没有效率问题?
高洛峰2017-04-17 17:54:39
Jumlah data ialah ratusan ribu Gunakan mysql untuk mengisih mengikut medan skor dalam jadual... Semak dan ludah setiap kali Cakera IO sahaja sudah cukup untuk anda, dan tidak perlu mempertimbangkan kecekapan pertanyaan SQL.
Tidak perlu mempertimbangkan isu prestasi dengan data sejuk, saya rasa ini adalah data panas. Jangan gunakan mysql untuk menyemak, gunakan redis, ia boleh dilakukan dengan mudah dengan SortedSet.
PHP中文网2017-04-17 17:54:39
Dalam kes ini, masalah kecekapan tidak dapat diselesaikan di peringkat SQL
伊谢尔伦2017-04-17 17:54:39
Eksport data dan gunakan bahasa pengaturcaraan untuk melaksanakan algoritma pengisihan pantas Anda tidak boleh mengharapkan SQL melaksanakan pelbagai algoritma pengisihan dengan cekap dan hanya menggunakannya.
伊谢尔伦2017-04-17 17:54:39
Topik ini menarik, tetapi adakah anda mempunyai soalan yang mencukupi? Oleh kerana jumlah data adalah ratusan ribu, jika kita hanya mengisih mengikut markah, kebanyakan orang mungkin mempunyai skor yang sama Walaupun markahnya setinggi berjuta-juta, 5 teratas dan 5 terbawah mungkin semua mempunyai skor yang sama.
Sebagai contoh, permainan semasa dari Tencent semuanya berada dalam kalangan rakan-rakan Ini satu lagi masalah, ia sangat teknikal