我们致力于一个MySQL知识的分享网站

  |   本站Feed      

MySQL Order By Rand()效率

2008-10-09 18:55:29  |   才被阅读:1,770 次  |   才1条评论
分类: MySQL初级应用  |   发布: OurMySQL  |   来源:PHPQ
标签: ,

本文详细解说了MySQL Order By Rand()效率优化的方案,并给出了是使用JOIN的语法来优化的思路过程,是篇不可多得的MySQL Order By Rand()效率美文。

继续阅读全文...

关于随机抽取order By Rand()的效率问题和改进写法!

2008-10-09 18:46:52  |   才被阅读:1,440 次  |   要评论?
分类: MySQL初级应用  |   发布: OurMySQL  |   来源:我爱PHP
标签: ,

最近由于需要大概研究了一下MYSQL的随机抽取实现方法。

举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是 SELECT * FROM tablename ORDER BY RAND() LIMIT 1

但是,后来我查了一下MYSQL的官方手册,里面针对RAND()有如下提示:

You can’t use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times. In MySQL Version 3.23, you can, however, do: SELECT * FROM table_name ORDER BY RAND()

大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。

继续阅读全文...

MySQL优化之COUNT(*)效率

2008-09-30 11:38:04  |   才被阅读:3,924 次  |   才1条评论
分类: MySQL初级应用  |   发布: OurMySQL  |   来源:平凡的世界
标签: , , ,

优化总结:

1.任何情况下SELECT COUNT(*) FROM tablename是最优选择;
2.尽量减少SELECT COUNT(*) FROM tablename WHERE COL = ‘value’ 这种查询;
3.杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 = ‘value’ 的出现。

继续阅读全文...

验证使用子查询提高MySQL分页效率

2008-09-25 19:11:00  |   才被阅读:1,517 次  |   要评论?
分类: MySQL初级应用  |   发布: OurMySQL  |   来源:老王
标签: , ,

BANGF348D58E49C9B8FC7701D2CBXIANGUO 很久以前,我写过一篇文章,说明了MySQL下的几种分页方式。这些天,陆续有几个人问过我其中的子查询方式,并对子查询分页的高效率表示质疑。今天我特意做了一个试验来验证这一点。

继续阅读全文...

Mysql数据库索引查询优化的分享

2008-09-25 19:05:39  |   才被阅读:1,231 次  |   要评论?
分类: MySQL初级应用  |   发布: OurMySQL  |   来源:Hi!Admin
标签: , ,

问题分析:

这张表大约容量30G,数据库服务器内存16G,无法一次载入。就是这个造成了问题。

这条SQL有两个条件,ID一到五十万和Program_id一到四千,因为program_id范围小得多,mysql选择它做为主要索引。

先通过索引文件找出了所有program_id在1到4000范围里所有的id,这个过程非常快。

接下来要通过这些id找出表里的记录,由于这些id是离散的,所以mysql对这个表的访问不是顺序读取。

而这个表又非常大,无法一次装入内存,所以每访问一条记录mysql都要重新在磁盘上定位并把附近的记录都载入内存,大量的IO操作导致了速度的下降。

继续阅读全文...