随机排序优化(随机显示数据)
如果业务场景中,有需要从数据库中随机加载数据的场景,例如一个英语学习App在首页随机显示单词的功能。随着单词表的增大,随机选择单词的逻辑变得越来越慢,影响了首页的加载速度,可以有以下优化算法。
- 随机算法 1:通过获取表的主键最大值和最小值,生成一个随机数,然后选取不小于该随机数的第一个ID的行。这种方法效率高,但可能不满足严格随机的要求。
- 随机算法 2:通过获取表的行数,生成一个随机数,然后使用
limit
子句来选取一行数据。这种方法比算法1更随机,但执行代价较高。 - 随机算法 3:是算法2的扩展,用于随机选取多行数据。通过生成多个随机数并执行多个
limit
子句来实现。
当然结合业务架构来讲,增加缓存可能是更好的一种方法。
作者与版本更新计划
感谢您的阅读与支持!本文是《MySQL实战与优化》专栏中的一篇精选文章,该专栏共包含16篇文章,旨在为您提供实战中可直接应用的宝贵知识。
目前版本为v1.0,更新时间2024年4月10日。后续此文档更新与版本发布会同步到知识星球【数舟】中。
知识整理与创作不易,感谢大家理解与支持!
加入知识星球,您将获得更多独家内容、专栏更新以及与行业内专家和同行的互动交流机会。我们在知识星球等您,一起探索MySQL的深层次世界!
星球内目前包含300+精品文章,内容涵盖大数据、MySQL、运维、Python、调优、经验分享、数据分析等方向内容,会根据大家的学习需求更新更多方向的内容。
🔗 立即扫描下方二维码,加入知识星球,与行业精英共同成长,开启您的专属学习之旅!