IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:ORDER BY

共 2 篇相关文章

IT 累计浏览 3,886

mysql 初探

这篇讲的是,一位有着多年理论学习但缺乏实战的开发者,如何重新打开 MySQL 的世界。文章从作者“温故知新”的视角出发,并未深入某个复杂案例,而是像一位耐心的向导,带读者重新梳理那些最常被提及也最易被忽略的基石概念。 作者回顾的焦点落在了 MySQL 最核心的两个支柱上:底层的 B+ 树索引结构如何决定了查询的效率,以及不同的事务隔离级别在并发场景下各自守护了什么、又可能牺牲了什么。对于许多刚接触数据库或工作后疏于回顾的开发者而言,这些概念或许都听过,但其精妙的设计与权衡细节却容易在日常使用中变得模糊。文章的价值恰恰在于,它以一种“回到起点”的坦诚,把这些知识点重新擦亮,并通过简明的逻辑将其串联。 它没有复杂的架构图或性能压测数据,却为许多“知其然不知其所以然”的日常操作提供了一个理解的基础框架。当再次面对一条慢查询日志或一个诡异的并发 bug 时,重温这些根本性的设计,或许能让人更快地锁定问题所在。

IT 累计浏览 3,563

MySQL中order by的实现 和 by rand() 和优化

这篇从同学的一个具体问题出发:MySQL里的`order by rand()`到底是怎么工作的。文章深入剖析了MySQL执行`ORDER BY`子句的底层机制。 作者详细拆解了两种核心实现路径:利用索引的“直接返回”与需要文件排序的“filesort”。关键在于,`order by rand()`由于其随机性,几乎总是无法利用索引,必须走filesort,甚至需要将全表数据读入临时表并计算随机值,这解释了它为何在数据量大时成为性能杀手。 文章的巧妙之处不止于点明问题,更提供了清晰的优化思路——摒弃`order by rand()`,转而采用`JOIN`子查询、`RAND() < limit`等替代方案来随机获取数据。这种从实现原理到实践优化的完整剖析,能帮助读者不仅知其然,更知其所以然,从而在实际开发中做出更优的技术选择。