MySQL Order By Rand()效率

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

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

继续阅读全文...

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

2008-10-09 18:46:52  |   才被阅读:1,589 次  |   要评论?
分类: 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字符串比较函数学习(二) — 比较函数

2008-10-09 15:50:23  |   才被阅读:1,128 次  |   要评论?
分类: MySQL基础知识  |   发布: yayu  |   来源:芽雨快跑
标签: ,

字符串比较函数函数在手册:这里。比较函数主要有三类:一个是用like子句;二是使用正则表达式的like子句;三是STRCMP函数了。前两者感觉更侧重搜索,第三个有大小的比较在里面。

字符串比较中有以下四个规则:

1:MySQL 会自动将数字转化为字符串,反之亦然。
2:若想要将数字明确地转化为字符串,可使用 CAST()或 CONCAT()函数。
3:若已经对一个字符串函数给定一个二进制字符串作为参数, 则所得到的结果字符串也是一个二进制字符串。
4:一般而言, 若字符串比较中任意一个表达式是区分大小写的,则执行比较时也区分大小写。

下面根据以上说的三类进行学习:

继续阅读全文...

MySQL字符串比较函数学习(一)

2008-10-09 15:47:28  |   才被阅读:1,652 次  |   要评论?
分类: MySQL基础知识  |   发布: yayu  |   来源:芽雨快跑
标签: ,

通览了一下手册,发现MySQL的字符串函数和PHP的函数在功能还是有很多地方相似的,很多都能在php中找到对应的函数。所以在这里,要向大家推荐一个文章:PHP 中执行排序与 MySQL 中排序。作者:明灵(dragon) , Fenng 。地址:http://www.dbanotes.net/arch/php_mysql_sort.html

好,回到本文。先说两个特别的地方:

1:函数中,假如结果的长度大于 max_allowed_packet 系统变量的最大值时,字符串值函数的返回值为NULL。请参见7.5.2节,“调节服务器参数”(http://dev.mysql.com/doc/refman/5.1/zh/optimization.html#server-parameters)。

2:和PHP等编程语言不同,对于在字符串位置操作的函数,第一个位置的编号为 1。

继续阅读全文...

MySQL 的数据类型和建库策略

2008-10-09 10:36:40  |   才被阅读:1,068 次  |   要评论?
分类: MySQL基础知识  |   发布: OurMySQL  |   来源:平凡的世界
标签: , ,

无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用数据类型有充分的认识。下面我就将我的一点心得写出来跟大家分享。

一、数字类型

二、日期时间类型

三、字符 (串) 类型

四、枚举和集合类型

继续阅读全文...