总结写在前面: 1. 不建议直接使用order by rand(),原因是执行代价比较大 2. 介绍了内存临时表,对于内存临时表,由于回表不需要访问磁盘,所以往往是用rowid排序,可以减少参与排序字段 3. 介绍了磁盘临时表,当临时表大小超过了 tmp_table_size的时候,就会使用磁盘存储. 4. 介绍了优先队列排序算法,该算法内使用了最大堆的思想,当排序时需要维护的堆的大小比sort_buffer_size小的时候(维护的堆大小往往跟需要取出的行数和排序字段相关),会使用该算法,否则