摘要:
该文章承接上一篇order by排序,进一步提出随机挑选数据的问题,站在大量数据查询的情况下:提出select word from words order by rand() limit 3;这种我们经常使用的查询语句的弊端:既要建立临时表排序(这里优化器使用的rowid排序)而且如果表中有一万条数据,那么扫描行数高达2万零三条(虽然sort_buffer排序不涉及表操作,不扫描表,这里需要注意临时表,上一张没细讲,就是因为使用另一个引擎,先后从memory到innodb引擎读了1万条数据),此外,拓宽了上一张rowid主键的范围(也可以是系统建的默认递增主键),还有优先队列排序法也挺有意思(与归并排序算法区分下),为了解决上面随机查询的弊端,我们提出了随机排序算法(这里要注意数据空洞,不能用大小比较)利用变量,字符串拼接,预处理语句十分有意思 阅读全文