我使用以下代码连接到mysql数据库:
my $dbh = DBI->connect("DBI:mysql:test:localhost", $user, $pass)
or die $DBI::errstr;
my $sqlQuery = $dbh->prepare($query)
or die "Can't prepare $query: $dbh->errstr\n";
my $rv = $sqlQuery->execute
or die "can't execute the query: $sqlQuery->errstr";
while (my @row= $sqlQuery->fetchrow_array()) {
# do something;
}
Run Code Online (Sandbox Code Playgroud)
我的疑问是:直到我的应用程序与小型数据库交互时才会好.但是,当我将此应用程序移动到数据库大小可能达到100 GB的实时环境时,此代码可能会导致性能问题.实际上我要问的是,在线 -
@row= $sqlQuery->fetchrow_array();
Run Code Online (Sandbox Code Playgroud)
将Perl复制整个表内容并将其转储到变量中.如果是,是否会对我的应用程序以及数据库服务器造成重大性能问题?
我想从Perl中的一行中提取子字符串.让我解释一下这个例子:
fhjgfghjk3456mm 735373653736
icasd 666666666666
111111111111
Run Code Online (Sandbox Code Playgroud)
在上面的行中,我只想提取12位数字.我尝试使用split功能:
my @cc = split(/[0-9]{12}/,$line);
print @cc;
Run Code Online (Sandbox Code Playgroud)
但它的作用是移除字符串的匹配部分并将残留物存储在其中@cc.我想要打印匹配模式的部分.我怎么样?
我接受If-Else块中的用户输入.检查代码:
if ( $svr == 1 ) {
print "Enter Datbase Name\n";
my $db = <>;
chomp($db);
} elsif ( $svr == 2 ) {
print "Enter Data Source Name (DSN)\n";
my $db = <>;
chomp($db);
}
Run Code Online (Sandbox Code Playgroud)
当我在后面的语句中引用$ db时,我收到以下错误:
"使用未初始化的值$ db"
这是我使用导致错误的$ db的语句:
my $data_source = 'DBI:mysql:' . $db . ':' . $host;
Run Code Online (Sandbox Code Playgroud)
请帮忙
perl ×3
database ×1
grep ×1
if-statement ×1
input ×1
mysql ×1
performance ×1
split ×1
string ×1