摘要: 本文讨论的是如何从MySQL一个数据表中提取一条随机的效率,同时要保证效率最高。方法一这是最原始最直观的语法,如下:SELECT * FROM foo ORDER BY RAND() LIMIT 1当数据表中数据量较小时,此方法可行。但当数据量到达一定程度,比如100万数据或以上,就有很大的性能问题。如果你通过EXPLAIN来分析这个 语句,会发现虽然MySQL通过建立一张临时表来排序,但由于ORDER BY和LIMIT本身的特性,在排序未完成之前,我们还是无法通过LIMIT来获取需要的记录。亦即,你的记录有多少条,就必须首先对这些数据进行排序。方法二看来对于大数据量的随机数据抽取,性能的症结 阅读全文
posted @ 2012-11-20 18:37 ec04 阅读(304) 评论(0) 推荐(0) 编辑
摘要: Perl File::Basenameuse warnings;use strict;use File::Basename;#########################################################################my $full_name='D:/Perl/perldoc/File/false.html';my ($basename,$dirname,$ext)=fileparse($full_name,'.html');########################################## 阅读全文
posted @ 2012-11-20 18:16 ec04 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Perl学习之目录操作作者:银子 一、在目录树上移动程序在某个工作目录(working directory)下运行,这是相对路径的起点。chdir可以改变工作目录。它和Unix shell,Win command下的cd命令类似。chdir "/test" or die "打开目录出错:$!";错误发生时将给变量$!赋值。通常应当检查$!的值,因为它将告诉你chdir失败的原因。工作目录会被Perl启动后的所有进程所继承。但是对于调用Perl的进程的工作目录将不会改变,因此,不能写一个Perl程序来代替shell下的cd命令。二、Globbing通常,s 阅读全文
posted @ 2012-11-20 17:31 ec04 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 以下是Net::FTP模块中的一些常用方法及它们不同寻常的返回值的汇总。因为Perl有非常多的模块,这些模块又有非常多的方法,如果不是经常的使用它们,必须有一个快速的列表供日后要使用时不要再参考其他的技术文档,拿来即用是Perl的风格,要将它发扬光大。Net::FTP API如何新建一个FTP对象$ftp=Net::FTP->new($host[,%options])%options可以对这个新建的FTP对象指定特定的选项,比如连接的超时时间等。选项列表:PortTimeoutPassive 为文件传输使用被动模式BlockSize 传输的块长度,默认为10240如何登录指定的FTP主机 阅读全文
posted @ 2012-11-20 16:54 ec04 阅读(308) 评论(0) 推荐(0) 编辑